首页 > 代码库 > MVC之Filter

MVC之Filter

过滤器的理解

Filter就是过滤器,在WebForm中,各种管道事件就是相当于过滤器,在MVC中,过滤器是单独的一种机制,分为方法过滤器和异常处理过滤器,方法过滤器实现的功能是在执行某一个请求得方法之前,先去执行以下其他的某些操作,当执行完成后再继续去执行要执行的方法。这种执行的机制就是相当于在一个流程中间切了一刀,这种思想就是面想切面编程(AOP)。

过滤器可以实现在执行请求方法的时候做权限校验、登录校验等,比如说只有登录的用户才可以访问这个方法,需要进行Session的校验。如果有很多的控制器中的方法都需要校验session,后期维护也是非常的不方便的,所以只需要将这种校验放在Filter中就可以了。

方法过滤器的使用

1.首先自己手写一个过滤器特性类,继承自ActionFilterAttribute

2.然后自己手写实现ActionFilterAttribute中的相应的方法。

3.将特性标签加载相应的行为或者控制器上面就可以了

自定义过滤器: 
public class MyDemoFilterAttribute:ActionFilterAttribute { public override void OnActionExecuted(ActionExecutedContext filterContext) { filterContext.HttpContext.Response.Write("我是后面"); } public override void OnActionExecuting(ActionExecutingContext filterContext) { filterContext.HttpContext.Response.Write("我是前面"); } }

 

给相应的方法添加自定义特性

  [MyDemoFilter]
        public ActionResult Index()
        {
            return View();
        }

 

MVC之Filter