Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 3 MVC默认重定向错误页面不存在';我不常露面_Asp.net Mvc 3_Error Handling - Fatal编程技术网

Asp.net mvc 3 MVC默认重定向错误页面不存在';我不常露面

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定义的自

我的MVC应用程序中有一个自定义错误页面,它只是~/error/但是当我在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代码吗。。。?