ホームページ > バックエンド開発 > C++ > カスタム エラー処理のために ASP.NET MVC エラー コントローラーにデータを渡すにはどうすればよいですか?

カスタム エラー処理のために ASP.NET MVC エラー コントローラーにデータを渡すにはどうすればよいですか?

Patricia Arquette
リリース: 2025-01-14 10:21:46
オリジナル
684 人が閲覧しました

How Can I Pass Data to My ASP.NET MVC Error Controller for Custom Error Handling?

エラー コントローラーにデータを渡すことによる、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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート