我有以下一对用于编辑的控制器方法。
初始调用没有问题,并且正确显示了来自两个子/导航对象的模型和属性(1:1 关系)。
当我尝试保存时,如果模型有效,则没有问题。
但是,当它无效时,我在视图中得到一个空引用,引用了任何子/导航属性——这些属性在原始视图中正确存在。
public ActionResult Edit(int id)
{
var reportcustomerlimit = db.ReportCustomerLimits.Single(r => r.Id == id);
return View(reportcustomerlimit);
}
[HttpPost]
public ActionResult Edit(ReportCustomerLimit reportcustomerlimit)
{
if (ModelState.IsValid)
{
db.ReportCustomerLimits.Attach(reportcustomerlimit);
reportcustomerlimit.ReportCustomer.Verified = false;
ReportGenerator.ClearAllReportsZip();
db.ObjectStateManager.ChangeObjectState(reportcustomerlimit, EntityState.Modified);
db.SaveChanges();
return RedirectToAction("Index", new { id = reportcustomerlimit.CustomerNumber });
}
else
{
//What do I do here?
}
return View(reportcustomerlimit);
}
我错过了什么?
(注意:验证通常在客户端完成,并停止提交表单 - 但我已经关闭了 javascript 以测试服务器端验证是否也有效)