C# MVC-5在编辑值后,不会在其他视图中显示结果

C# MVC-5在编辑值后,不会在其他视图中显示结果,c#,asp.net-mvc-5,viewbag,C#,Asp.net Mvc 5,Viewbag,嗨,我是新来的,英语不是我的第一语言,所以请原谅我的语法或拼写错误 我目前遇到的问题是当我编辑一个对象并尝试在其他视图中显示值时。 我已经检查过对象是否保存在数据库中,但是当我尝试在和其他视图中显示其值时,它不会更新。 我必须打开和关闭要更新的应用程序 这是控制器代码 Edit(int? id) { ... Teacher teacher = db.Teacher.Find(id); return View(model); } [HttpPost] Edit(Teach

嗨,我是新来的,英语不是我的第一语言,所以请原谅我的语法或拼写错误

我目前遇到的问题是当我编辑一个对象并尝试在其他视图中显示值时。 我已经检查过对象是否保存在数据库中,但是当我尝试在和其他视图中显示其值时,它不会更新。 我必须打开和关闭要更新的应用程序

这是控制器代码

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>
}
@模范学生
@{
列表教师=(列表)ViewBag.Teachers;
}
....
@foreach(教师中的var教师)
{
@教师姓名
@教师。姓氏
}

我已经解决了问题,数据库没有更新

我所做的只是把它放在DisplayStudent(int?id)中


假设实体框架?或者您正在使用另一个ORM?如果您在返回视图(学生)上放置断点;在DisplayStudent action上,您的ViewBag.Models是否包含预期的数据?另外,视图中的ViewBag.models与控制器中的ViewBag.models之间的大小写差异是否仅仅是因为您将代码复制到了这里?或者这也存在于代码中?我敢肯定,ViewBag确实区分大小写。是的,是EntityFramework DisplayStudent为var studen指定了一个值,但将“student”传递给视图。这个学生价值观是从哪里来的?
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);
}