代码之家  ›  专栏  ›  技术社区  ›  Llyr

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

  •  0
  • Llyr  · 技术社区  · 8 年前

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

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

    这是控制器代码

    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>
    }
    
    1 回复  |  直到 8 年前
        1
  •  0
  •   Llyr    8 年前

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

    我所做的一切都放在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);
    }