2011-08-12 3 views
3

제목이 말했듯이 이는 잘못된 생각입니까? 그렇다면 왜?ViewData ModelState를 하위 작업으로 내보내기

현재 @ Html.Acion 내부에서 일부 입력 필드를 렌더링하는 경우 @ Html.Action이 관련 될 때 ModelState가 지워지므로 유효성 검사 오류가 사용자에게 표시되지 않습니다 (해당 컨텍스트에서).)

그래서 가장 좋은 패턴은 무엇입니까?

+0

하위 작업 또는 부분보기 또는 다른 방법으로 문제를 해결할 수 있었습니까? –

+0

ViewBag에 추가 데이터를 추가하여 부분 뷰를 만들었습니다. Html.Action을 해킹하려고 시도하는 대신 내 의견으로는 받아 들일 수있는 절충안입니다. – kidoman

답변

4

ControllerContext.ParentActionViewContext 또는 ViewContext.ParentActionViewContext (세부 사항 here)을 통해 상위 컨텍스트에 액세스 할 수 있지만 더 나은 해결책이 있다고 생각합니다.

현재 컨트롤러 동작 및보기 (예 : 사용자 환영 레이블, 탐색 모음 등)와 독립적으로 사용할 수있는 데이터로 모든보기 모델을 오염시키지 않으려면 하위 작업을 사용하는 것이 좋습니다.).

일반적인 입력 필드와 같은 다른 재사용 시나리오의 경우 부분보기가 더 나은 방법입니다.

그러나 현재 시나리오에 대한 자세한 내용을 제공 할 경우보다 구체적인 해결책을 제안하려고합니다.