1、创建解决方案 MVCFilterDemo:
1)MVCFilterDemo:空的MVC项目
2)MVCFilter:C#类库项目

2、MVCFilter:需要引用下面两个dll
1)System.Web :直接右键添加引用,找到程序集里面的System.Web即可
2)System.Web.Mvc:此项需要添加引用 -> 浏览 -> 找到创建MVCFilterDemo自动生成的目录:packages\Microsoft.AspNet.Mvc.5.2.3\lib\net45 下面的dll

3、在MVCFilter项目中创建类MVCActionFilter,并引用
using System.Diagnostics;
using System.Web;
using System.Web.Mvc;
同时,继承 ActionFilterAttribute,并 override 其四个虚方法

4、OnActionExecuting 方法测试代码如下:
在进入Action,开始执行内部代码之前,由MVC框架自动执行

5、OnActionExecuted 方法测试代码如下:
在进入Action 执行完代码,且在return之前,由MVC框架自动执行

6、OnResultExecuting方法测试代码如下:
在执行Action return 之前,由MVC框架自动调用

7、OnResultExecuted 方法测试代码如下:
在执行Action结果,结束Action之前,由MVC框架自动调用(在此处修改Controller中的变量,包括Session,不会输出到界面,相当于不会真的改变其值)

8、在MVCFilterDemo项目中创建HomeController:
1)添加项目MVCFilter的引用
2)在Index Action中书写测试代码如下

9、在Index View页面的测试代码如下

10、执行结果如下:

