使用MVC框架中要注意的问题(八):HandleError
来源:互联网 发布:阿里云服务器磁盘扩容 编辑:程序博客网 时间:2024/05/22 21:28
使用MVC框架中要注意的问题(八):HandleError
在ASP.NET MVC中,我们可以使用HandleErrorAttribute特性来具体指定如何处理Action抛出的异常.只要某个Action设置了 HandleErrorAttribute特性,那么默认的,当这个Action抛出了异常时MVC将会显示Error视图,该视图位于~/Views /Shared目录下.
设置HandleError属性
可以通过设置下面这些属性来更改HandleErrorAttribute特性的默认处理:
- ExceptionType.指定过滤器处理那种或哪些类型的异常,如果没有指定该属性,过滤器将会处理所有的异常.
- View.指定发生异常时过滤器要显示的视图名称.
- Master.指定视图母版的名称,如果有的话.
- Order.指定过滤器应用的顺序,如果一个Action有多个HandleErrorAttribute过滤器.
指定Order属性
如果某个Action设置了多个HandleErrorAttribute,Order属性可以用来确定使用哪个过滤器.其值可以设置为从-1(最高优先级)到任何正整数之间的整数来标识其优先级,值越大,优先级别越低.Order属性遵循以下规则:
- 应用到Controller上的过滤器将会自动应用到该Controller的所有Action上.
- 如果Controller和Action都应用了HandleErrorAttribute,那么只要Order属性值相同,将会先执行Controller上的过滤器,而后才会执行Action上的过滤器.
- 对于相同Order属性的过滤器,其执行先后次序不定.
- 如果没有指定Order属性,则默认为-1,这意味着该过滤器将比其他的过滤器优先执行,除非其他过滤器指定了Order为-1.
- 如果有多个过滤器可适用,那么第一个可以处理该异常的过滤器会被首先调用,然后针对该异常的处理将会终结.
在View中获取异常信息
ASP.NET MVC框架将异常信息存储在ViewDataDictionary中来传递给Error视图,该ViewDataDictionary的Model属性即是ExceptionContext类的一个实例,这个ViewData有下面几个键:
ActionName:目标Action方法的名称
ControllerName:目标Controller的名称
Exception:异常对象.
启用自定义错误处理
下面我们来开启用于HandleErrorAttribute过滤器的自定义错误处理,打开程序的Web.config文件,在system.web节中加入一个customErrors元素,如下所示
<system.web>
<customErrors mode="On" defaultRedirect="Error" />
</system.web>
- 使用MVC框架中要注意的问题(八):HandleError
- 使用MVC框架中要注意的问题(八):HandleError
- 使用MVC框架中要注意的问题(七):HtmlAttributes
- 使用MVC框架中要注意的问题(七):HtmlAttributes
- 使用MVC框架中要注意的问题(六):何时使用PartialView方法
- 使用MVC框架中要注意的问题(六):何时使用PartialView方法
- 使用MVC框架中要注意的问题:何时使用PartialView(部分类)方法
- 使用MVC框架中要注意的问题(四):ActionLink只是执行Get的操作
- 使用MVC框架中要注意的问题(三):如何为链接指定路径
- 使用MVC框架中要注意的问题(一):修改首页以支持主题
- 使用MVC框架中要注意的问题(三):如何为链接指定路径
- 使用MVC框架中要注意的问题(五):如何在页面和用户控件之间传递数据
- 使用MVC框架中要注意的问题(二):将Model和Controller单独用一个项目设计
- 使用MVC框架中要注意的问题(五):如何在页面和用户控件之间传递数据
- 使用MVC框架中要注意的问题:如何在页面和用户控件之间传递数据
- MVC中使用aspx当作视图需要注意的问题
- Spring MVC 表单提交中需注意的问题
- 在spring+hibernate3框架中使用HibernateDaoSupport应注意的问题
- Java十年 十大组织
- #define ADD(a,b) a+b 的问题
- rhce之路--正则表达式
- 使用MVC框架中要注意的问题(六):何时使用PartialView方法
- 选拔赛+总结
- 使用MVC框架中要注意的问题(八):HandleError
- include *.c与 include *.h
- RO代码跟踪 之 客户端代理类的工作原理
- QQ魔法卡片辅助工具外挂silverlight版
- [Struts2]s:combobox标签在使用出现问题:改变下拉列表的选中值,文本框的值不能随着被改变
- 使用MVC框架中要注意的问题(五):如何在页面和用户控件之间传递数据
- Of Study
- Receiver 实例
- 安装MSDN后,使用本地连接查询 “无法显示该网页” 解决方案