Asp.net mvc 3 MVC默认重定向错误页面不存在';我不常露面
我的MVC应用程序中有一个自定义错误页面,它只是~/error/但是当我在Web.Config中打开自定义错误时,如下所示:Asp.net mvc 3 MVC默认重定向错误页面不存在';我不常露面,asp.net-mvc-3,error-handling,Asp.net Mvc 3,Error Handling,我的MVC应用程序中有一个自定义错误页面,它只是~/error/但是当我在Web.Config中打开自定义错误时,如下所示: <customErrors mode="On" defaultRedirect="~/error/" /> 它只适用于400个错误,而不是服务器端500个错误,并在白色页面上显示以下错误消息: 很抱歉,处理您的请求时出错 我怎样才能让每个错误都转到defaultRedirect页面呢?500个错误应该由MVC应用程序自己处理。web.config定义的自
<customErrors mode="On" defaultRedirect="~/error/" />
它只适用于400个错误,而不是服务器端500个错误,并在白色页面上显示以下错误消息:
很抱歉,处理您的请求时出错
我怎样才能让每个错误都转到defaultRedirect页面呢?500个错误应该由MVC应用程序自己处理。
web.config
定义的自定义错误适用于500个错误以外的错误
基本上,您需要使用RegisterGlobalFilter
方法(在global.asax
中)向过滤器集合添加一个新的HandleErrorAttribute
(您将为HandleErrorAttribute中的错误命名要使用的视图),然后创建一个作为其模型的视图System.Web.Mvc.HandleErrorInfo
。没有处理这些错误或将模型发送到视图的控制器,因此不能重定向到错误页面
您可以在上获得更多信息
编辑还有一种替代方法,通过MVC处理所有错误,如中所示。基本上,您可以在global.asax文件中设置一个
受保护的void应用程序\u Error()
,以处理所有错误,而无需通过web.config 对于我认为非常简单的事情来说,这似乎非常复杂-通过使用URL的none Action/Controller参数进行黑客攻击,很容易在MVC中触发500个错误-如果有人尝试这样做,我只想让他们进入一个体面的错误页面…@Rob检查我的编辑,寻找使用web.config的替代方法CustomErrors您的设置似乎很好…而且应该可以正常工作。。。你能为“~/error/”(我指的是控制器/操作/视图)发布你的MVC代码吗。。。?