我的 MVC 应用程序中有一个自定义错误页面,它只是 ~/error/ 但是当我在 Web.Config 中打开自定义错误时,如下所示:
<customErrors mode="On" defaultRedirect="~/error/" />
它仅适用于 400 错误而不是服务器端 500 错误,而是在白页上给我以下错误消息:
“抱歉,处理您的请求时出现了一个错误。”
我怎样才能让每一个错误都转到 defaultRedirect 页面?
我的 MVC 应用程序中有一个自定义错误页面,它只是 ~/error/ 但是当我在 Web.Config 中打开自定义错误时,如下所示:
<customErrors mode="On" defaultRedirect="~/error/" />
它仅适用于 400 错误而不是服务器端 500 错误,而是在白页上给我以下错误消息:
“抱歉,处理您的请求时出现了一个错误。”
我怎样才能让每一个错误都转到 defaultRedirect 页面?
500 错误应该由 MVC 应用程序自己处理。定义的自定义错误web.config
用于 500 错误以外的错误。
基本上,您需要使用RegisterGlobalFilter
方法 (in global.asax
) 向过滤器集合添加一个新HandleErrorAttribute
的(您将在 HandleErrorAttribute 中命名用于错误的视图),然后创建一个将其作为模型的视图System.Web.Mvc.HandleErrorInfo
。没有控制器可以处理这些错误或将模型发送到视图,因此您不能只重定向到错误页面。
编辑有一种替代方法,其中所有错误都通过 MVC 处理,如如何在 Asp.Net Mvc 3 中显示自定义错误页面?. 基本上,您在 global.asax 文件中设置一个protected void Application_Error()
来处理所有错误,而无需通过 web.config。