コントローラーのOnException()メソッド

 protected override void OnException(ExceptionContext filterContext)
 {
     if (filterContext.HttpContext.IsCustomErrorEnabled) {
         var vr = new ViewResult();
         vr.ViewName = "~/Views/Shared/MyError.cshtml";
         vr.ViewBag.ControllerName = (string) filterContext.RouteData.Values["controller"];
         vr.ViewBag.ActionName     = (string) filterContext.RouteData.Values["action"];
         vr.ViewBag.Exception      = filterContext.Exception.ToString();
 
         filterContext.Result = vr;
 
         filterContext.ExceptionHandled = true;
     }
 }
  • 上のようなOnException()メソッドを各コントローラークラスに記述する。
  • もしくは、一括で処理する場合、各コントローラークラスが継承する基底コントローラークラスを作り、その基底クラスで上のメソッドを記述する。

コントローラー外でのエラーを例外処理する場合はApplication_Errorを使う

global.asax.csにApplication_Error()を作成する。

参考


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS

Last-modified: 2014-04-27 (日) 20:33:28