过滤器的理解
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(); }
时间: 2024-10-13 09:33:45