- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- ソース を表示
- dotNet-ASP.NET MVC/例外処理/例外処理(エラーページ)基本 へ行く。
- 1 (2014-03-29 (土) 18:21:50)
- 2 (2014-03-29 (土) 21:26:05)
customErrorsで404等のエラーをカスタマイズする
ASP.NET MVCのエラーページとASP.NET(IIS)のエラーページ
- ASP.NET MVCで扱うエラーページは大きく2つに分けられる。
- 一つはASP.NET MVCのエラーページ、
- もう一つはASP.NET(IIS)のエラーページ。
- エラーページにデバッグ情報を表示する、ウェブデザインを非エラーページと同様にする等、ページを作りこむ場合はASP.NET MVCのエラーページを使う。
- なお、ビジネスロジックで発生するようなエラーは、customErrorsではなく、OnException()もしくはApplication_Error()を使ってエラー処理する。
ASP.NET MVCのエラーページを使うにはcustomErrorsのmodeをOnにする
<configuration> <system.web> <customErrors defaultRedirect="~/Error/" mode="RemoteOnly"> <error statusCode="404" redirect="~/Error/NotFound" /> </customErrors> </system.web> </configuration>
- ASP.NET MVCのエラーページを使う場合、Web.configで以上のように設定する。
- 上の場合、ErrorクラスとNotFoundメソッドを自作する必要がある。
参考
http://msdn.microsoft.com/ja-jp/library/h0hfz6fc(v=vs.100).aspx
customErrorsより優先されるエラー
- コントローラー内でエラーが発生した場合、OnException()メソッドが呼ばれて、ここでエラー処理される。
- デフォルトでは、return View("Error")されて、Views\Shared\Error.cshtmlが表示される。
- また、全てのエラーを一括でキャッチするには、Gobal.asaxのApplication_Error()にエラー処理を書く。
- customErrorsは、上のようなOnException()やApplication_Error()に処理がない状態で例外が発生した場合に、customErrorsへHTTPリダイレクトされた上で実行される。