加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – ASP.Net MVC 3 – HandleError属性中的顺序似乎

发布时间:2020-12-16 03:26:17 所属栏目:asp.Net 来源:网络整理
导读:问题:当我使用HandleError属性的Order属性时,首先应用最高订单号,而不是最低的第一个. 细节 我想设置我的控制器以这种方式处理异常: 如果异常的类型是CustomException,请使用“CustomError”视图. 否则,使用默认的“错误”视图. 使用默认的MVC项目模板,我
问题:当我使用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属性会使事情更明确.从MSDN page:

The greater the integer value is,the lower the priority of the filter
is.

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

[HandleError(Order = 1,ExceptionType = typeof(Exception),View = "Error")]
[HandleError(Order = 2,ExceptionType = typeof(CustomException),View = "CustomError")]

但这种情况并非如此;这会导致与未指定Order属性时相同的行为.如果我交换Orders,这会导致显示“Error”视图,即使抛出了CustomException.

基本上,实际的订单优先级似乎与文档完全相反.我做错了什么或这是一个错误?

解决方法

请点击此链接:

http://forums.asp.net/t/1699131.aspx/1?Filter+Execution+Order+Backwards

订单改为对面

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读