Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.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 ASP.NETMVC3orderinHandleError属性是否可以反向工作?_Asp.net Mvc_Asp.net Mvc 3_Handleerror - Fatal编程技术网

Asp.net mvc ASP.NETMVC3orderinHandleError属性是否可以反向工作?

Asp.net mvc ASP.NETMVC3orderinHandleError属性是否可以反向工作?,asp.net-mvc,asp.net-mvc-3,handleerror,Asp.net Mvc,Asp.net Mvc 3,Handleerror,问题:当我使用HandleError属性的Order属性时,会首先应用最高阶数,而不是最低阶数 详细信息 我想将控制器设置为以这种方式处理异常: 如果异常类型为CustomException,请使用“CustomError”视图 否则,使用默认的“错误”视图 使用默认的MVC项目模板,我完成了以下工作: 从全局筛选器中删除了HandleErrorAttribute 在web.config中打开自定义错误 然后我将这些属性添加到HomeController类: [HandleError(E

问题:当我使用
HandleError
属性的
Order
属性时,会首先应用最高阶数,而不是最低阶数

详细信息

我想将控制器设置为以这种方式处理异常:

  • 如果异常类型为
    CustomException
    ,请使用“CustomError”视图
  • 否则,使用默认的“错误”视图
使用默认的MVC项目模板,我完成了以下工作:

  • 从全局筛选器中删除了
    HandleErrorAttribute
  • web.config
    中打开自定义错误
然后我将这些属性添加到
HomeController
类:

[HandleError(ExceptionType = typeof(Exception), View = "Error")]
[HandleError(ExceptionType = typeof(CustomException), View = "CustomError")]
这很好——如果抛出
CustomException
,就会显示“CustomError”视图;如果抛出异常,则显示“错误”视图

但是,我认为
HandleError
属性上的
Order
属性会使事情更加明确。从:

整数值越大,筛选器的优先级越低 是

因此,我认为以下代码将导致在所有情况下显示“Error”视图:

[HandleError(Order = 1, ExceptionType = typeof(Exception), View = "Error")]
[HandleError(Order = 2, ExceptionType = typeof(CustomException), View = "CustomError")]
但事实并非如此;这会导致与未指定
Order
属性时相同的行为。如果我交换订单,这会导致显示“错误”视图,即使抛出了
CustomException


基本上,实际的顺序优先级似乎与文档正好相反。我是做错了什么还是这是一个bug?

请点击以下链接:


订单已更改为相反的

感谢您发布此问题!信不信由你,三年后微软关于这一功能的说法仍然是错误的。我已经向ASP.NET团队提交了一个解决方案