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

默认internet应用程序ASP.NET MVC中如何显示错误页面,asp.net,asp.net-mvc,asp.net-mvc-3,asp.net-mvc-4,error-handling,Asp.net,Asp.net Mvc,Asp.net Mvc 3,Asp.net Mvc 4,Error Handling,我正在使用ASP.NET MVC 3中的默认internet应用程序。当应用程序中发生错误时,它会自动重定向到共享文件夹内部视图中已存在的默认错误页 我想知道这是怎么发生的?因为我在web.config或Global.asax中没有看到在发生错误时强制应用程序重定向到错误页面的任何设置 它将位于web.config中,看起来像: <system.web> <customErrors mode="Off" /> </system.web> MVC有一个默认

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


我想知道这是怎么发生的?因为我在web.config或Global.asax中没有看到在发生错误时强制应用程序重定向到错误页面的任何设置

它将位于
web.config
中,看起来像:

<system.web>
<customErrors mode="Off" />
</system.web>


MVC有一个默认的异常过滤器(),它为您提供内置的错误处理。

这通常是由默认情况下在您的
全局中注册的全局
操作过滤器引起的。asax

public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
    filters.Add(new HandleErrorAttribute());
}
但是请记住,默认情况下,如果在
Web.config
,过滤器将不会调用自身

请注意,
HandleError
filter不使用重定向,它只是将请求的
Action
的原始
ActionResult
替换为使用
Error.cshtml
视图的自己的
ViewResult
(除非另有规定)


请参见

我在web.config中找不到它。我想知道这是不是默认设置?如果是,他们实际上是如何强制重定向的。重定向是由注册在
Global.asax
文件中的
HandleError
过滤器强制的,如果你想改变这种行为,你可以引入你自己的属性,该属性继承自
HandleError
,并在默认值之前注册。据我所知(从源代码看),不涉及重定向。@haim770通过重定向,我相信OP指的是视图,而不是实际的URL重定向(用词不当)。