View의 Person 폴더 내에 PersonController와 View라는 "Person"이라는 뷰가 있습니다.Html.RenderAction은 잘못된 ModelState에 대한 MVC2의 컨트롤러에서 작업을 찾을 수 없습니다.
추가보기는 제목, 이름, 성 및 전화 번호를 사용합니다. 제목은 미리 채워진 값이있는 드롭 다운 목록입니다. 이 드롭 다운 목록을 얻으려면
<% Html.RenderAction("Titles", "Person");
해당 작업이 호출되면 PartialView가 반환됩니다. PartialView는 미리 구성된 제목의 드롭 다운 목록입니다.
시나리오 :
내가 "추가"라는 두 개의 컨트롤러 액션 (하나 개 GET, 하나의 포스트)를 가지고있다. HttpGet에서 제목, 빈 텍스트 상자 등의 드롭 다운 목록과 함께 기본적으로 빈 양식을로드합니다. 사용자가 업로드 버튼을 클릭하면 "추가"HttpPost가 호출됩니다. 이 작업의 내부에서, 나는 그들이 필요한 필드가 비어 있으면 내가 ModelState에 오류를 추가하는 등 필드, 작성 확인하고, 몇 가지 유효성 검사를 수행합니다 modelstate이 유효하지 않은 경우
if(string.IsNullOrEmpty(firstName))
{
ModelState.AddModelError("person", "Person first name is required.");
}
을, 보기를 반환하므로 사용자는 유효성 검사 오류 메시지를 볼 수 있습니다.
ModelState가 유효하면 Action이 올바르게 렌더링되지만 오류가 있고 ModelState에 오류를 추가하고 HttpPost 액션에서 View를 반환하면 HttpException이 뷰에서 throw됩니다.
Error executing child request for handler 'System.Web.Mvc.HttpHandlerUtil+ServerExecuteHttpHandlerAsyncWrapper'.
"제목"이라는 작업을 "사람"컨트롤러에서 찾을 수 없음을 알립니다. 분명히 나는 거기에 있다는 것을 알고있다. ModelState에 오류가 있기 전에 잘 실행 되었기 때문이다.
아이디어가 있으십니까?