• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ASP.NETMVCFrameworkActionFilters

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

ASP.NET MVC Framework包括几种action filters:

  • OutputCache – 在指定的时间内缓存controller action的输出。
  • HandleError – 处理controller action发生错误的情况。
  • Authorize – 通过制定的用户或者角色约束访问权限。

 

不同类型的Filter

ASP.NET MVC Framework支持四种不同类型的filter:

  1. Authorization filters – 实现IAuthorizationFilter接口的属性.
  2. Action filters – 实现IActionFilter接口的属性.
  3. Result filters – 实现IResultFilter接口的属性.
  4. Exception filters – 实现IExceptionFilter接口的属性.

filter的执行顺序按上面的列表中顺序进行。如验证(authorization)filter永远都是最开始执行的,异常(exception)filter永远都是最后执行的。

验证(authorization)filter用于实现在controller action上的验证和授权,如Authorize filter就是一个验证filter的例子;

Action filter包含一些逻辑,用于该action执行之前或者之后。比如可以使用一个action filter来修改action返回的view data;

Result filter包含一些逻辑,用于该action的view result执行之前和之后。比如可以修改一个view result在view被呈现到浏览器之前;

异常(Exception)action用于处理异常信息,同样可以使用异常filter记录错误日志。

这些的filter类型是根据指定的顺序执行的,如果需要控制他们的执行顺序,需要设置filter的Order属性。

这些类的基类为System.Web.Mvc.FilterAttribute类,如果需要实现一个特定的filter类型,可以创建一个继承这个类的类,并且实现一个或多个IAuthorization、IActionFilter、IResultFilter、ExceptionFilter接口。

 

ActionFilterAttribute基类

为了让用户更简单的创建一个自定义action filter,ASP.NET MVC Framework提供了一个基类ActionFilterAttribute,这个类实现了IActionFilter和IResultFilter接口,并且继承了Filter类。

这里的术语并不完全一致,从技术上说,这个类继承ActionFitlerAttribute,并且同时实现了action filter和result filter接口,但是从宽松意义上说,在ASP.NET MVC Framework中,任何实现filter的类型都是action filter。

ActionFilterAttribute类有以下的方法可以重写:

  • OnActionExecuting – 在controller action执行之前调用
  • OnActionExecuted – 在controller action执行之后调用
  • OnResultExecuting – 在controller action result执行之前调用
  • OnResultExecuted – 在controller action result执行之后调用

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap