エラー コントローラーにデータを渡すことによる、ASP.NET MVC での効果的なカスタム エラー処理
ASP.NET MVC アプリケーションでの優れたユーザー エクスペリエンスには、堅牢なエラー処理が不可欠です。 Application_Error
のグローバル Global.asax.cs
イベントは一元的なエラー管理を提供しますが、関連データをエラー コントローラーに効率的に渡すには戦略的なアプローチが必要です。
この例では、クエリ文字列を利用してエラー情報をエラー コントローラーに伝達し、複数のエラー ルートの必要性を回避しています。 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 = "NotFound"; break; case 500: action = "ServerError"; break; default: action = "GenericError"; break; } Server.ClearError(); // Clear the server-side error Response.Redirect(String.Format("~/Error/{0}?message={1}", action, Server.UrlEncode(exception.Message))); } }</code>
対応するエラー コントローラー アクションが更新され、クエリ文字列からメッセージが取得されます。
<code class="language-csharp">// GET: /Error/NotFound public ActionResult NotFound() { string message = Request.QueryString["message"]; ViewBag.Message = message; // Or use a ViewModel return View(); }</code>
この方法では、既存のルーティングを利用してエラー処理を簡素化します。 ただし、繰り返し使用するとセッション オブジェクト管理などの要因により効率に影響を与える可能性があるため、特に高トラフィック環境では潜在的なパフォーマンスへの影響を考慮することが重要です。 運用展開には慎重な検討と最適化が必要です。
以上がカスタム エラー処理のために ASP.NET MVC エラー コントローラーにデータを渡すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。