Gra*_*ark 5 asp.net-mvc handleerror asp.net-mvc-3
问题:当我使用Order属性的HandleError属性时,首先应用最高订单号,而不是最低的第一个.
细节
我想设置我的控制器以这种方式处理异常:
CustomException,请使用"CustomError"视图.使用默认的MVC项目模板,我完成了以下操作:
HandleErrorAttribute从全局过滤器中删除了.web.config.然后我将这些属性添加到HomeController类中:
[HandleError(ExceptionType = typeof(Exception), View = "Error")]
[HandleError(ExceptionType = typeof(CustomException), View = "CustomError")]
Run Code Online (Sandbox Code Playgroud)
这样可以正常工作 - 如果CustomException抛出a,则会显示"CustomError"视图; 如果Exception抛出a,则显示"错误"视图.
但是,我认为Order属性上的HandleError属性会使事情更明确.从MSDN页面:
整数值越大,过滤器的优先级越低.
由此,我认为以下代码将导致在所有情况下显示"错误"视图:
[HandleError(Order = 1, ExceptionType = typeof(Exception), View = "Error")]
[HandleError(Order = 2, ExceptionType = typeof(CustomException), View = "CustomError")]
Run Code Online (Sandbox Code Playgroud)
但这种情况并非如此; 这会导致与Order未指定属性时相同的行为.如果我交换了Orders,这会导致显示"Error"视图,即使CustomException抛出了一个.
基本上,实际的订单优先级似乎与文档完全相反.我做错了什么或这是一个错误?
| 归档时间: |
|
| 查看次数: |
2783 次 |
| 最近记录: |