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
属性时,会首先应用最高阶数,而不是最低阶数
详细信息
我想将控制器设置为以这种方式处理异常:
- 如果异常类型为
,请使用“CustomError”视图CustomException
- 否则,使用默认的“错误”视图
- 从全局筛选器中删除了
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团队提交了一个解决方案