如何在默认的Internet应用程序ASP.NET MVC中显示错误页面

时间:2013-06-26 11:06:49

标签: asp.net asp.net-mvc asp.net-mvc-3 asp.net-mvc-4 error-handling

我正在使用ASP.NET MVC 3中的默认Internet应用程序。当应用程序中发生错误时,它会自动重定向到视图中共享文件夹中已有的默认错误页面。

我正在试图弄清楚它是如何发生的?因为我没有看到web.config或Global.asax中的任何设置强制应用程序在发生错误时重定向到错误页面。

2 个答案:

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