Global.asax의 Application_Error 이벤트를 사용하여 ASP.NET MVC에서 사용자 정의 오류 처리 구현
ASP.NET MVC의 Global.asax 파일에 있는 Application_Error 이벤트를 통해 개발자는 애플리케이션에서 처리되지 않은 예외와 오류를 처리할 수 있습니다. 일반적인 방법은 오류 HTTP 상태 코드를 기반으로 사용자를 특정 오류 페이지로 리디렉션하는 것입니다.
이를 수행하려면 다음과 같이 Application_Error 이벤트 핸들러를 수정하면 됩니다.
<code class="language-csharp">protected void Application_Error(object sender, EventArgs e) { Exception exception = Server.GetLastError(); Response.Clear(); HttpException httpException = exception as HttpException; if (httpException != null) { string action; switch (httpException.GetHttpCode()) { case 404: // 页面未找到 action = "HttpError404"; break; case 500: // 服务器错误 action = "HttpError500"; break; default: action = "General"; break; } // 清除服务器上的错误 Server.ClearError(); Response.Redirect(String.Format("~/Error/{0}/?message={1}", action, exception.Message)); } }</code>
이 개선된 코드에서는 오류 컨트롤러에 대한 새 경로를 생성하는 대신 컨트롤러/작업으로 직접 리디렉션하고 오류 세부 정보를 쿼리 문자열 매개변수로 전달합니다. 그런 다음 오류 컨트롤러는 메시지를 수신하고 작업 메서드에 지정된 보기를 사용하여 표시합니다.
<code class="language-csharp">// GET: /Error/HttpError404 public ActionResult HttpError404(string message) { return View("SomeErrorView", message); }</code>
이 접근 방식을 사용하면 오류 처리가 단순화되고 추가 라우팅이 필요하지 않습니다. 그러나 예를 들어 오류 처리 중에 루프 또는 세션 생성이 많이 발생하는 경우 성능 문제가 발생할 수 있다는 점을 염두에 두어야 합니다.
위 내용은 Application_Error를 사용하여 ASP.NET MVC에서 사용자 지정 오류 처리를 구현하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!