3

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 (このパスを含む) を検索し、エラー ビューのレンダリング例外をユーザーに提供することはできません (「ラスト チャンス例外」)。

それを処理する方法はありますか?

4

1 に答える 1

1
于 2016-03-10T15:10:02.150 に答える