0
嗨,我是新來的,英語不是我的第一語言,所以請原諒我的任何語法或拼寫錯誤。MVC-5編輯一個值後,不會在其他視圖中顯示結果
我目前遇到的問題是當我編輯一個對象並嘗試在其他視圖中顯示值。 我已經檢查過該對象是否保存在數據庫中,但是當我嘗試在其他視圖中顯示其值時,它不會更新。 我必須打開和關閉要更新的應用程序。
這是控制器代碼
Edit(int? id)
{
...
Teacher teacher = db.Teacher.Find(id);
return View(model);
}
[HttpPost]
Edit(Teacher teacher)
{
var _teacher = db.Teacher.Find(teacher.id);
db.Entry(_teacher).CurrentValues.SetValues(Teacher);
db.SaveChanges();
return redirecToAction("DisplayStudent", new {id=Teacher.studentId});
}
DisplayStudent(int? id)
{
var student = db.Studen.Find(id);
ViewBag.Teachers = db.Teacher.Where(model => model.studentId ==id).ToList();
return View(student);
}
有鑑於此
@model Student
@{
List<Teacher> Teachers = (List<Model>)ViewBag.Teachers;
}
....
@foreach(var teacher in Teachers)
{
<p>@teacher.name<p>
<p>@teacher.lastName<p>
}
假設的EntityFramework?或者你在使用另一個ORM? –
如果你在返回View(student)處放置斷點;在DisplayStudent操作中,您的ViewBag.Models是否包含預期的數據?另外,View中的ViewBag.models與控制器中的ViewBag.Models之間的外殼差異僅僅是從你將代碼複製到這個?或者你的代碼中還存在這種情況? ViewBag確實是大小寫敏感的,我很確定。 – Bon
yes is entityframework – Llyr