parentModel を持つ parent.cshtml ビューと、childModel を持つ child.cshtml ビューがあるとします。この子アクションは[ChildActionOnly]
、parent.cshtml: でレンダリングされます@Html.Action("ChildAction")
。
さて、コントローラー/ParentActionで
public ActionResult ParentAction() {return View();}
[HttpPost]
public ActionResult ParentAction(ParentModel parentmodel) {
if(!ModelState.IsValid) {
...
ModelState.AddModelError("", "parent view has an error");
}
return View(parentmodel); // pass the ball back to user
}
コントローラー/ChildActionで
[ChildActionOnly]
public ActionResult ChildAction() {return View();}
[HttpPost]
public ActionResult ChildAction(ChildModel childmodel) {
if(!ModelState.IsValid) {
...
ModelState.AddModelError("", "child view has an error");
}
//??? return ParentView(parentmodel, childmodel) ??? how do i do this???
}
子アクションで、ParentView (ChildView もレンダリングする) に戻り、モデルにデータを保存するにはどうすればよいですか?
編集: - - -
私のポイントは、そうしない方法です。return View(childmodel);
from child アクションでは、子ビューのみの「部分的な」ページしか表示されず、親部分が欠落しているため、見たいものが得られません。RedirectToAction("ParentAction");
再び完全なビューが表示されますが、モデルは失われます。ネストされたビューでモデルを返す方法がわからない。それが私が立ち往生しているところです。