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