我注意到如果 View 中存在编译错误并且自定义错误已打开,则框架不会触发“global.cs”中的 Application_Error(object sender, EventArgs e)
,或重定向到配置设置中的 defaultRedirect
url。
相反,它加载母版页,将标题更改为 Error 并放置以下内容
<h2> Sorry, an error occurred while processing your request. </h2>
View 内容应在的位置。
有谁知道强制它像处理其他任何错误一样处理这些错误的方法吗?
PS 我知道 View 中不应该有任何编译器错误,但我们有一个 View 文件被损坏并且没有被发现的情况,因为日志代码在 Application_Error(object sender, EventArgs e)
。
最佳答案
您是否使用处理错误属性?
[HandleError]
我将属性放在 Controller 级别而不是单独的 Action 方法上。然后在 Controller 内部,我覆盖 OnException 事件以捕获错误。
protected override void OnException(ExceptionContext filterContext)
{
EventLog.WriteEntry("MyAppError", filterContext.Exception.ToString(), EventLogEntryType.Error);
base.OnException(filterContext);
}
然后我不覆盖 Application_Error 事件。我还是用Views\Shared目录下的Error页面
关于c# - View 未编译时不重定向到错误页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8155910/