사용자 지정 예외를 작성했으며 내 응용 프로그램이 '예외 상태'라고 생각할 때마다이 클래스의 인스턴스를 던지고 있습니다. 이 예외는 응용 프로그램 논리 클래스 (내 경우에는 서비스)에서 발생합니다. 이제는 기본 ASP MVC 예외 리디렉션을 사용하고 있지만 이러한 사용자 지정 예외의 경우 '오류'페이지로 리디렉션하지 않고 div에 메시지를 표시하고 싶습니다 (예 : 내 Layout.cshtml 페이지). TempData [ "ApplicationError"]에 예외 메시지를 추가하려고 생각했습니다. 이 코드를 한 번만 쓰고 싶습니다. 내 컨트롤러 동작 방법 전체가 아닙니다. 그래서, 내 기본 컨트롤러 클래스에서 나는 보호 무효 OnException (ExceptionContext filterContext)을 무시하고 내 코드는 다음과 같습니다ASP MVC에 표시되는 사용자 지정 예외 메시지
protected override void OnException(ExceptionContext filterContext)
{
if (filterContext.Exception is InvalidOperationException)
TempData["ApplicationError"] = filterContext.Exception.Message;
else
base.OnException(filterContext);
}
내 문제는이 예외가 발생했을 때 여전히 기본 오류 페이지로 리디렉션이다 . 나는 이것을 원하지 않는다. 내가 원하는 것은 사용자가있는 동일한 뷰에서 친숙한 div에 사용자 정의 예외 메시지를 표시하는 것입니다. 이걸 어떻게 달성 할 수 있을지에 대한 아이디어가 있습니까?
감사합니다. 이 접근법의 문제점은이 예외를 던지는 모든 메소드에서 try-cacth-AddError를 복사/붙여 넣기해야한다는 것입니다. 나는 이것을 원하지 않는다. 나는 이것을 항상 다루기위한 중앙 (인프라) 장소와 같은 것이 필요합니다. 대부분의 경우 뷰 관련 데이터를 백업하는 뷰 모델조차 가지고 있지 않습니다. –
강력하게 형식화 된보기를 제공하므로 ViewModel을 사용하는 것이 좋습니다. – Shyju
지금 VM을 필요로하지 않습니다. 특히 내 문제를 해결할 때 그렇습니다. –