PostBack上的值丢失。

| 我正在使用MVC3和EntityFranmework的Generetad类将一些数据保存到数据库中。 控制器
// Get
public ActionResult Create(Guid StudentID)
{
    Semester semester = new Semester();

    ViewBag.BranchID = new SelectList(db.Branches, \"ID\", \"Name\");
    semester.Student = db.Students.Single(s => s.ID == StudentID);

    return PartialView(semester);
} 

//
// POST: /Semester/Create

[HttpPost]
public ActionResult Create(Semester semester)
{
    semester.ID = Guid.NewGuid();
    semester.CreatedDate = DateTime.Now;
    semester.CreatedBy = \"ddf\";


    db.Semesters.AddObject(semester);
    db.SaveChanges();
    return RedirectToAction(\"Index\", \"Student\");      
}
我确实在get方法中获得了学生的所有结果,但在post方法中所有的学生数据都丢失了。 救命!     
已邀请:
        传递给POST操作的对象与传递给GET操作中的视图的对象不同。在您的POST动作中,您将获得MVC仅使用参数Request(查询字符串,post数据)创建的“ 1”实例-这意味着Student实例已不复存在。您将需要将学生ID传递到POST操作并在其中填写。
[HttpPost]
public ActionResult Create(Guid studentID, Semester semester)
{
    semester.ID = Guid.NewGuid();
    semester.CreatedDate = DateTime.Now;
    semester.CreatedBy = \"ddf\";

    semester.Student = db.Students.Single(s => s.ID == StudentID);

    db.Semesters.AddObject(semester);
    db.SaveChanges();
    return RedirectToAction(\"Index\", \"Student\");      
}
    

要回复问题请先登录注册