现在的位置: 首页 > 综合 > 正文

ActionFilterAttribute 简记

2013年09月24日 ⁄ 综合 ⁄ 共 1914字 ⁄ 字号 评论关闭

 

ActionFilterAttribute横切于项目中,可在项目的各自层中使用。

 

几个要点:

1.      
作用于方法。该类有实现时有4重载,分别是用于方法捕捉方法前后的事情(权限验证,服务器压缩等)

2.      
一个方法上可有多个不同类型ActionFilterAttribute子类对象,并设置验证顺序。

 

Demo:

a  实现ActionFilterAttribute子类

 

 

b 在某个方法上使用。

 

 

 

说明:

  [RecordOrderFilterAttribute(Order=1,OrderID=1)]和 [RecordOrderFilterAttributeV2(Order=2,OrderID=2)]中,

RecordOrderFilterAttribute和RecordOrderFilterAttributeV2实现相同,只是名不同;Order 父类属性,当控制器方法上有多个ActionFilterAttribute特性时,设置其执行顺序。

 

结果(打开f:/ActionResult.txt):

OnActionExecuting:1

OnActionExecuting:2

OnActionExecuted:2

OnActionExecuted:1

OnResultExecuting:1

OnResultExecuting:2

OnResultExecuted:2

OnResultExecuted:1

 

我们发现结果不是:

OnActionExecuting:1

OnActionExecuting:2

OnActionExecuted:1

OnActionExecuted:2

OnResultExecuting:1

OnResultExecuting:2

OnResultExecuted:1

OnResultExecuted:2

 

这里是出于上下文的思考:执行方法之间上下文不交叉,可包含。

 

但OnActionExecuting:1 和 OnResultExecuting:1 可以看出:在开始执行方法和准备返回View时的顺序是按我们设置的执行的。原因嘛:它们分别是执行方法 和 返回View 操作的开始。

 


 

抱歉!评论已关闭.