
- 概念1.过滤器是一种面向切面的编程思想
- 2.可以在不影响原来逻辑的基础上增加自己的逻辑。过滤器范围
- 如果在 FilterConfig注入的过滤器就是全局项目中所有控制器请求都会进行过滤器进行拦截如果制定过滤可以直接在控制器里面的action上加上控制器即可
- 注意:过滤器本身需要是一个特性类
- public class 类名:FilterAttribute(特性类),过滤器名称
- {
-
- }
- 如
- [过滤器名称]
- public ActionResult Index1(string stat, string value, string id)
- {
- return View();
- }
- 过滤器的分类
-
- 控制器其实本身也是一个过滤器,而且是具有多种类型的过滤器
- IActionFilter:在其执行该过滤器的第一个方法执行完,接着执行控制器里面的action,再执行该过滤器里面的另一个方法,最后执行视图
- IAuthorizationFilter:针对性用来处理权限相关过滤器
- IExceptionFilter:发现异常的时候会执行
- IResultFilter:action返回值的阶段执行,时间节点比较晚,可以把返回值进行一些控制,相对来说使用比较少。
-
- 过滤器的优先级
- IactionFilter 顺序
- 1. 先执行该过滤器的OnActionExecuting的方法
- 2. 再执行 控制器的里面的 action
- 3. 最后执行该过滤器的OnActionExecuted方法
- 4. 跳转到该控制器相应action的视图
-
- IResultFilter顺序
- 1. 先执行控制器的里面的 action
- 2. 再执行该过滤器的OnResultExecuting的方法
- 3. 最后执行该过滤器的OnResultExecuted方法
- 4. 跳转到该控制器相应action的视图
- IExceptionFilter顺序
- 1. 发生错误直接进入该过滤器
- 获取错误信息
- string Error = filterContext.Exception.Message;
- 处理异常
- filterContext.ExceptionHandled = true;
评价