我正在使用ASP.NET MVC 3中的默认Internet应用程序。当应用程序中发生错误时,它会自动重定向到视图中共享文件夹中已有的默认错误页面。
我正在试图弄清楚它是如何发生的?因为我没有看到web.config或Global.asax中的任何设置强制应用程序在发生错误时重定向到错误页面。
答案 0 :(得分:1)
它将在web.config
中,它看起来像:
<system.web>
<customErrors mode="Off" />
</system.web>
MVC有一个默认的异常过滤器(HandleError),它为您提供内置的错误处理。
答案 1 :(得分:1)
这通常是由Action Filter
默认注册的全局global.asax
引起的:
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new HandleErrorAttribute());
}
请注意,默认情况下,如果您<customErrors mode="Off" />
中的Web.config
,则过滤器不会自行调用。
请注意,HandleError
过滤器不使用重定向,它只是用它自己的{{1}替换所请求的ActionResult
的原始Action
使用ViewResult
视图(除非另有说明)。
请参阅http://aspnetwebstack.codeplex.com/SourceControl/latest#src/System.Web.Mvc/HandleErrorAttribute.cs