排名
6
文章
6
粉丝
16
评论
8
{{item.articleTitle}}
{{item.blogName}} : {{item.content}}
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:
50010702506256
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)
{
}
} 

评价