MVC 过滤器的使用
来源:互联网 发布:监控提示无网络视频 编辑:程序博客网 时间:2024/06/06 06:43
第一种方法(Controller中的方法)
一般用于权限过滤
写一个控制器基类 重写Controller中的OnActionExecuting、OnActionExecuted等方法 达到在特定位置添加过滤的效果
namespace Core.ProjectOA.WebApp.Controllers{ public class BaseController : Controller { public UserInfo LoginUser { get; set; } //要过滤的控制器可以继承此BaseController /// <summary> /// 在控制器执行方法之前执行 /// </summary> /// <param name="filterContext"></param> protected override void OnActionExecuting(ActionExecutingContext filterContext)//protected 只能被子类访问 重写 OnActionExecuting方法 { base.OnActionExecuting(filterContext); //这里可以写代码进行过滤 } } }
然后把需要添加此种过滤的控制器从继承Controller改为 继承BaseController
第二种方法(ActionFilterAttribute)
1、新建一个类
public class DemoFilterAttribute:ActionFilterAttribute { filterContextInfo fcinfo; // OnActionExecuted 在执行操作方法后由 ASP.NET MVC 框架调用。 // OnActionExecuting 在执行操作方法之前由 ASP.NET MVC 框架调用。 // OnResultExecuted 在执行操作结果后由 ASP.NET MVC 框架调用。 // OnResultExecuting 在执行操作结果之前由 ASP.NET MVC 框架调用。 /// <summary> /// 在执行操作方法之前由 ASP.NET MVC 框架调用。 /// </summary> /// <param name="filterContext"></param> public override void OnActionExecuting(ActionExecutingContext filterContext) { filterContext.HttpContext.Response.Write(@"<br />在执行操作方法之前由 ASP.NET MVC 框架调用"); base.OnActionExecuting(filterContext); } /// <summary> /// 在执行操作方法后由 ASP.NET MVC 框架调用。 /// </summary> /// <param name="filterContext"></param> public override void OnActionExecuted(ActionExecutedContext filterContext) { filterContext.HttpContext.Response.Write(@"<br />在执行操作方法后由 ASP.NET MVC 框架调用"); base.OnActionExecuted(filterContext); } /// <summary> /// OnResultExecuted 在执行操作结果后由 ASP.NET MVC 框架调用。 /// </summary> /// <param name="filterContext"></param> public override void OnResultExecuted(ResultExecutedContext filterContext) { filterContext.HttpContext.Response.Write(@"<br />OnResultExecuted 在执行操作结果后由 ASP.NET MVC 框架调用"); base.OnResultExecuted(filterContext); } /// <summary> /// OnResultExecuting 在执行操作结果之前由 ASP.NET MVC 框架调用。 /// </summary> /// <param name="filterContext"></param> public override void OnResultExecuting(ResultExecutingContext filterContext) { filterContext.HttpContext.Response.Write(@"<br />OnResultExecuting 在执行操作结果之前由 ASP.NET MVC 框架调用"); base.OnResultExecuting(filterContext); } }
2、给需要过滤的控制器方法 加上特性标签[DemoFilter]
如果一个控制器下的所有方法都需要执行此过滤 则给整个类加上特性标签
0 0
- MVC 过滤器的使用
- MVC过滤器的使用
- MVC过滤器的使用总结
- Spring MVC 中 HandlerInterceptorAdapter过滤器的使用
- Spring MVC 中 HandlerInterceptorAdapter过滤器的使用
- mvc过滤器使用示例
- MVC过滤器的介绍
- ASP.NET MVC的过滤器
- ASP.NET MVC的过滤器
- ASP.NET MVC的过滤器
- ASP.NET MVC的过滤器
- MVC 3.0 使用过滤器(Filter)
- MVC 过滤器
- MVC 过滤器
- MVC过滤器
- MVC 过滤器
- MVC过滤器
- MVC过滤器
- Mysql优化的一般步骤
- 查看qq空间说说及评论,设置相关表结构
- opencv remap
- POJ 2553 Tarjan
- linux 安装svn(二)创建版本库
- MVC 过滤器的使用
- 使用监听器实现Java Web的定时任务
- Python第一章-基础知识
- 关于思考
- 关于简易故障诊断中全频振动参数的现场应用
- HTML5 Canvas图片马赛克模糊动画
- 从频率到意义:语义向量空间模型(2)(From Frequency to Meaning: Vector Space Models of Semantics)
- ScheduledExecutorService定时周期执行指定的任务
- ArrayList的sublist();方法的陷阱