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 回答