2

내 오류 처리는 컨트롤러 실행 중에 생성 된 오류를 수집합니다 (일부는 자동으로, 일부 자동으로). 그런 다음 오류 메시지를 렌더링하는 부분보기가 있습니다. ViewData에 오류 메시지를 저장하고 RedirectResult로 응답하면 오류 메시지를 TempData로 전송합니다.MVC 하위 작업의 오류 처리

문제는 다음과 같습니다. 하위 작업으로 인해 오류가 발생하는 경우 부분보기가 렌더링 된 후 (최소한 페이지 아래에있는 것들)이 실행되므로 오류가 발생합니다.

바로 지금 필자가 가지고있는 필사적 인 아이디어는 레이아웃 페이지 맨 아래에 자바 스크립트로 메시지를 렌더링하고 자바 스크립트에서 오류 표시 상자를 업데이트하는 것입니다. 하지만 냄새가 나쁘다. 클라이언트 측 코드가 필요 없다.

부분보기를 "게으른 렌더링"할 수있는 방법이 있습니까?

답변

2

Html.Action을 사용하여 각 하위 작업에 대한 변수에 결과를 저장할 수 있습니다.

그리고 끝나면 "오류 패널"로 Html.RenderPartial으로 전화 할 수 있습니다.

@{ 
    var result = Html.Action("ChildAction"); 
} 

@Html.Partial("ErrorMessages") 

@result 

그리고 나서 작업을 요구하는 대신 변수를 배치하여 일반 레이아웃으로 재개하십시오.

+0

위대한 답변 - 정말 도움이 될 것입니다. –