parentModel이있는 parent.cshtml보기와 childModel이있는 child.cshtml보기가 있다고 가정합니다. 이 하위 동작은 [ChildActionOnly]
이며 parent.cshtml : @Html.Action("ChildAction")
에서 렌더링됩니다.모델을 반환하는 MVC 상위 및 하위 중첩 뷰
이제/ChildAction 나는 (또한 ChildView를 렌더링)에 ParentView으로 돌아가 보존 어떻게 아이의 행동에
[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???
}
, 컨트롤러의 컨트롤러/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
}
그들의 모델에있는 데이터?
편집 : -----
내 요점은 그렇게하지 않는 것입니다. 하위 작업의 '부분적'페이지 만 제공하기 때문에 자식 작업의 return View(childmodel);
은 우리가보고 싶은 것을 얻지 못합니다. 부모 부분이 누락되었습니다. RedirectToAction("ParentAction");
는 전체 화면을 다시 표시하지만 모델을 잃게됩니다. 중첩 된 뷰에서 모델을 반환하는 것을 처리하는 방법을 모릅니다. 그게 내가 붙어있는 곳이야.
parentModel의 하위 항목으로 childModel을 배치 해보십시오. childModel를 자식 컨트롤러로 전달한 다음 부모 컨트롤러 내부에서이를 무시합니다. –
@Aleksey : child.cshtml에는 childModel에 대한 정보를 게시하는 Form과 Submit Button이 있습니다. [HttpPost] public ActionResult ChildAction (ChildModel childmodel) {... 그래서, ParentModel이 ChildModel을 감싸는 방식에 대한 귀하의 요점을 보지 못합니까? 코드 샘플을 보여 주시겠습니까? 또한 아마도 themarcuz가 말한 것처럼 모든 사람들이 자체 모델을 처리합니까? – Tom