排名
6
文章
6
粉丝
16
评论
8
{{item.articleTitle}}
{{item.blogName}} : {{item.content}}
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2024TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术
分类:
.net mvc
过滤器是一种面向切面的编程思想
可以再不影响原来的逻辑基础上增加自己的逻辑
IActionFilter: action执行之前与执行之后执行的
IAuthorizationFilter:针对性用来处理权限相关过滤器
IExceptionFilter: 发现异常的时候会执行
IResultFilter: action返回值的阶段执行,时间节点比较晚,可以把返回值进行一些控制,相对来说使用比较少。
全局过滤器
FilterConfig注入的过滤器就是全局的
过滤器限制控制器级别,过滤器需要是一个特性类(FilterAttribute)
使用时需要引入命名空间,设置过后,过滤器则只对本控制器中的视图产生限制
放在视图上也是同样的道理(只对本视图产生限制)
IActionFilter过滤器(执行前执行后)
public class MyActionFilter: FilterAttribute, IActionFilter { public void OnActionExecuted(ActionExecutedContext filterContext) { //action执行之后运行此部分 } public void OnActionExecuting(ActionExecutingContext filterContext) { //action执行之前运行此部分 } }
IAuthorizationFilter过滤器(执行前)
public class MyActionFilter : FilterAttribute, IAuthorizationFilter { public void OnAuthorization(AuthorizationContext filterContext) { //运行之前会执行此部分(一般用来处理相关权限) } }
IExceptionfilter过滤器(异常处理)
public class MyActionFilter : FilterAttribute, IExceptionFilter { public void OnException(ExceptionContext filterContext) { //出现异常将会运行到此部分 //异常信息 string message = filterContext.Exception.Message; //设置异常是否处理,true将不会输出错误信息(防止异常被用户看到) filterContext.ExceptionHandled = true; } }
IResultFilter过滤器(使用较少)用于从操作成功返回操作结果的执行的筛选器。
public class MyActionFilter : FilterAttribute, IResultFilter { //在操作结果执行之后调用。 public void OnResultExecuted(ResultExecutedContext filterContext) { } //在操作结果执行之前调用。 public void OnResultExecuting(ResultExecutingContext filterContext) { } }
评价