0

新しい MVC3 プロジェクトが作成されると、デフォルトで [HandleError] 属性が GLobal.asax に GlobalFilter として登録されます。ただし、コメントして次を実行すると(カスタムエラーモードをオンにして)、引き続き機能します。ErrorInfo モデルが設定された ErrorView が表示されます。では、HandleError を Global.asax に登録する必要はありますか?

  [HandleError(ExceptionType = typeof(NullReferenceException),View = "ErrorView")]
        public ActionResult Index()
        {
            throw new NullReferenceException();
            return View();
        }
4

1 に答える 1

0

これは、デフォルトの MVC 例外処理ポリシーを設定しています。/Views/Shared/Error.cshtmlすべてのコントローラーまたはアクションに HandleError 属性を明示的に追加しなくても、未処理の例外が発生したときにビューをレンダリングします。

次に、より具体的なHandleError属性をコントローラーやアクションに追加して、デフォルト ビュー以外のエラー ビューを表示したり、より具体的な例外タイプを処理したりできます。

HandleError フィルターを (グローバルかどうかに関係なく) 機能させるには、次のように web.config でカスタム エラーが有効になっていることを確認する必要があり<customErrors mode="On" />ます (デフォルトは RemoteOnly であるため、開発中には実行されません)。

これは(例に従って)ここでうまく説明されています

于 2012-12-16T09:50:26.360 に答える