asp.net mvc 过滤器ActionFilter

2024-11-04 12:56:36

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

asp.net mvc 过滤器ActionFilter

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

asp.net mvc 过滤器ActionFilter

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

asp.net mvc 过滤器ActionFilter

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

asp.net mvc 过滤器ActionFilter

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

asp.net mvc 过滤器ActionFilter

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

asp.net mvc 过滤器ActionFilter

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

asp.net mvc 过滤器ActionFilter

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

asp.net mvc 过滤器ActionFilter

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

asp.net mvc 过滤器ActionFilter

10、执行结果如下:

asp.net mvc 过滤器ActionFilterasp.net mvc 过滤器ActionFilter
猜你喜欢