2016-03-03 66 views
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> 
} 
+0

假設的EntityFramework?或者你在使用另一個ORM? –

+0

如果你在返回View(student)處放置斷點;在DisplayStudent操作中,您的ViewBag.Models是否包含預期的數據?另外,View中的ViewBag.models與控制器中的ViewBag.Models之間的外殼差異僅僅是從你將代碼複製到這個?或者你的代碼中還存在這種情況? ViewBag確實是大小寫敏感的,我很確定。 – Bon

+0

yes is entityframework – Llyr

回答

0

我已經解決這個問題,該數據庫沒有更新。

我所做的只是把在DisplayStudent(INT?ID)

DisplayStudent(int? id) 
{ 
    db.dispose(); 
    db = new dbEntities(); 
    var student = db.Studen.Find(id); 
    ViewBag.Teachers = db.Teacher.Where(model => model.studentId ==id).ToList(); 
    return View(student); 
} 
相關問題