ErrorController
ウェブサイトのエラーをカスタム処理するものがあります。
それはかなり標準的です:
public class ErrorController : BaseController
{
public ActionResult Error404(Exception ex)
{
return View();
}
public ActionResult Error500(Exception ex)
{
return View();
}
}
ただし、View コード内で何らかのレンダリング例外が発生した場合 (ページにマスター ページ (マスター レイアウト) があり、別のページが発生する可能性があるため、これが発生する可能性があります)、そのレンダリング例外をキャッチできません。
私は実際にその例外を実装で見ることができますActionFilterAttribute.OnResultExecuted
:
public override void OnResultExecuted(ResultExecutedContext filterContext)
{
if (filterContext.Exception != null)
{
// not sure what to do here
} else base.OnResultExecuted(filterContext);
}
しかし、その場合、MVC はその例外が発生した後に~/Shared/Error.cshtml (このパスを含む) を検索し、エラー ビューのレンダリング例外をユーザーに提供することはできません (「ラスト チャンス例外」)。
それを処理する方法はありますか?