私はUsersController
, with OnException
(これは動作します) を持っていますが、Controller
を から継承すると、 . に入れても動作BaseController
しOnException
ませんBaseController
。
基本的に、すべてのコントローラーを継承したいので、すべてをキャッチするハンドラーBaseController
を1つだけ持つことができます...OnException
私はUsersController
, with OnException
(これは動作します) を持っていますが、Controller
を から継承すると、 . に入れても動作BaseController
しOnException
ませんBaseController
。
基本的に、すべてのコントローラーを継承したいので、すべてをキャッチするハンドラーBaseController
を1つだけ持つことができます...OnException
すべてのコントローラーで例外を同じ方法で処理するために、カスタムの基本コントローラー クラスから継承する必要はありません。ActionFilter でそれを行うことができます。
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method,
AllowMultiple = true, Inherited = true)]
public class CustomHandleErrorAttribute : HandleErrorAttribute
{
public override void OnException(ExceptionContext context)
{
// do custom exception handling here
// to return View("Error"), you can just do this:
context.Result = new ViewResult { ViewName = "Error" };
}
}
この Global.asax を使用して、ライブラリ内のすべてのコントローラーにこれを適用できます。
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
//filters.Add(new HandleErrorAttribute()); // default MVC setting
filters.Add(new CustomHandleErrorAttribute());
}