4

MVCアプリケーションに〜/ error /だけのカスタムエラーページがありますが、Web.Configでカスタムエラーをオンにすると、次のようになります。

<customErrors mode="On" defaultRedirect="~/error/" />

サーバー側の500エラーではなく、400エラーに対してのみ機能し、代わりに白いページに次のエラーメッセージが表示されます。

"リクエストの処理中に申し訳ありませんが、エラーが発生しました。"

すべてのエラーをdefaultRedirectページに移動させるにはどうすればよいですか?

4

1 に答える 1

3

500エラーは、MVCアプリケーション自体で処理する必要があります。によって定義されたカスタムエラーweb.configは、500エラー以外のエラー用です。

基本的に、RegisterGlobalFilterメソッド(in global.asax)を使用して新しいHandleErrorAttributeフィルターコレクションに追加し(HandleErrorAttributeでエラーに使用するビューに名前を付けます)、モデルとして取るビューを作成する必要がありますSystem.Web.Mvc.HandleErrorInfo。これらのエラーを処理したり、モデルをビューに送信したりするコントローラーはないため、エラーページにリダイレクトすることはできません。

詳細については、http://community.codesmithtools.com/CodeSmith_Community/b/tdupont/archive/2011/03/01/error-handling-and-customerrors-and-mvc3-oh-my.aspxを参照してください。

編集Asp.NetMvc3でカスタムエラーページを表示するにはどうすればよいですか?に示すように、すべてのエラーがMVCを介して処理される別の方法があります。。protected void Application_Error()基本的に、 web.configを経由せずに、すべてのエラーを処理するようにglobal.asaxファイルにを設定します。

于 2012-06-10T03:50:55.573 に答える