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 中国語 Web サイトの他の関連記事を参照してください。