我在 ASP.NET MVC3 中编写了一个表单,我无法获取条目来保存我在数据库中所做的更改,但是在调试时,我注意到这些更改反映在数据上下文中。我在运行此代码时没有遇到任何错误。如果您需要更多,请告诉我。谢谢!
控制器
[HttpPost]
public ActionResult Edit(Tool tool, FormCollection collection)
{
if (collection["Tool.Person.PersonID"] != "")
{
tool.Person= context.People.Find(
Convert.ToInt32(collection["Tool.Person.PersonID"])
);
}
if (collection["Tool.Company.CompanyID"] != "")
{
tool.Company = context.Companies.Find(
Convert.ToInt32(collection["Tool.Company.CompanyID"])
);
}
if (ModelState.IsValid)
{
context.Entry(tool).State = EntityState.Modified;
context.SaveChanges();
return RedirectToAction("Index");
}
return View(tool);
}
前两个if
语句检查用户是否输入了个人或公司,信息通过 FormCollection 传递。PersonID 和 CompanyID 分别是 Person 和 Company 的主键。我多次逐行执行该方法并获得相同的结果 - 在 context.SaveChanges(); 之后,上下文反映了更改,但 Person_PersonID 和 Company_CompanyID 的数据库条目仍然为空。