編集用に次のコントローラーメソッドのペアがあります。
最初の呼び出しは問題なく、2 つの子/ナビゲーション オブジェクトのモデルとプロパティが正しく表示されます (1:1 の関係)。
保存しようとすると、モデルが有効であれば問題ありません。
ただし、無効な場合は、元のビューに正しく存在していた子/ナビゲーション プロパティのいずれかを参照するビューで null 参照を取得します。
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 をオフにしました)