在介绍Action Filter之前,我们先来回顾一下asp.net mvc请求执行的过程。首先我们通过URL Routing 获取到相应的Controller和Action;然后执行Action,并且返回ActionResult;最后执行ActionResult,输出相应的结果。

好了,回顾完整个请求执行过程,下面该介绍Action Filter一些相应的知识。

(1)Action Filter是贯穿mvc执行过程,为什么要这样说呢?因为Action Filter有四个方法成员,分别是OnActionExecuting;OnActionExecuted;OnResultExecuting;OnResultExecuted;其中执行顺序是按照我所写的方法顺序执行的,在下一篇博客中我将会通过一个小的Demo来说明这四个方法的执行顺序。说完Action Filter的四个方法,还有一个orde属性,这个属性是标识不同Action Filter在mvc程序中执行的顺畅的。

(2)Action Filter可以说能够做“所有”事情,包括:日志;缓存;异常处理等等。

(3)现在说明一下Action Filter各方法的执行顺序吧!

首先我们输入URL Routing;

第二步执行OnActionExecuting;

第三步执行Action;

第四步执行OnActionExecuted;

第五步执行OnResultExecuting;

第六步执行ActionResult;

第七步执行OnResultExecuted;

(4)下面通过一些书面文字,来说明一下Action Filter的实现过程;

首先我们定义一个类,继承ActionFilterAttribute;

然后覆盖(override)必要的方法;

最后标记在需要进行相应操作的Action上(这里就可以使用orde属性了,标识不同Action Filter的执行顺序);

以上我所总结的只是Action Filter的最基本的知识!!!