【发布时间】:2016-06-25 11:52:26
【问题描述】:
我有 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(包括此路径),并且我无法向用户提供错误视图呈现异常 - - “最后机会例外”。
有什么办法可以解决吗?
【问题讨论】:
标签: asp.net-mvc razor error-handling viewrendering