以前不是很清楚,记录学习下:

Asp.Net MVC4中的全局过滤器,可以对整个项目进行全局监控。

新建一个MVC4项目,可以在global.asax文件中看到如下代码:  FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);

表示注册全局过滤器.

GlobalFilters是全局过滤器的集合,可以通过add方法添加过滤器,默认情况下,HandleErrorAttribute过滤器被添加到集合中。

接下来我们创建一个自定义过滤器,然后添加到全局过滤器集合中。

1.创建自定义过滤器

创建自定义过滤器要继承ActionFilterAttribute类。我们创建一个名称为CustomerFilterAttribute的过滤器,在action里面记录下时间。

代码如下:

[csharp]  view plain copy
  1. public class CustomerFilterAttribute : ActionFilterAttribute
  2. {
  3. public override void OnActionExecuting(ActionExecutingContext filterContext)
  4. {
  5. base.OnActionExecuting(filterContext);
  6. filterContext.HttpContext.Response.Write("开始时间:"+DateTime.Now.ToString()+"<br/>");
  7. }
  8. public override void OnActionExecuted(ActionExecutedContext filterContext)
  9. {
  10. base.OnActionExecuted(filterContext);
  11. var controllerName = filterContext.RouteData.Values["controller"].ToString();
  12. var actionName = filterContext.RouteData.Values["action"].ToString();
  13. filterContext.HttpContext.Response.Write("结束时间:" + DateTime.Now.ToString() + "<br/>");
  14. filterContext.HttpContext.Response.Write("controller:" +controllerName+",action:"+actionName);
  15. }
  16. }

2.注册全局过滤器

过滤器创建完成后,我们把这个过滤器添加到全局过滤器中,使用  filters.Add(new CustomerFilterAttribute());方法,

代码如下:

[csharp]  view plain copy
  1. public class FilterConfig
  2. {
  3. public static void RegisterGlobalFilters(GlobalFilterCollection filters)
  4. {
  5. filters.Add(new HandleErrorAttribute());
  6. filters.Add(new CustomerFilterAttribute());
  7. }
  8. }

接下来我们运行项目中的每一个页面,都会看到页面中输出时间和controller名称,效果图如下:

转载出自: http://blog.csdn.net/zx13525079024/article/details/19161777

FilterConfig.RegisterGlobalFilters 全局过滤器的用法相关推荐

  1. asp.net mvc 自定义全局过滤器 验证用户是否登录

    一般具有用户模块的系统都需要对用户是否登录进行验证,如果用户登录了就可以继续操作,否则退回用户的登录页面 对于这样的需求我们可以通过自定义一个独立的方法来完成验证的操作,但是这样代码的重复率就大大提高 ...

  2. MVC中使用Action全局过滤器出现:网页无法正常运作 将您重定向的次数过多。解决办法

    今天用本地测试出现将您重定向的次数过多的错误提示,搜索到这篇文章,大概看懂了意思. 我自己的是tp的登录页面提示重定向,我查到问题是logincontroller.class.php 前面继承了com ...

  3. vue过滤器——vue全局过滤器,

    一.全局过滤器 1.用法: // 注册 Vue.filter('my-filter', function (value) { // 返回处理后的值 }) // getter,返回已注册的过滤器 var ...

  4. uni-app 定义 全局过滤器(filter)、“Tue Mar 08 2022 14:44:42 GMT+0800 (中国标准时间)“ 过滤为 “2022-03-08“ 格式

    普通filter <view class="date">{{date | formatDate}} </view> filters: {formatDate ...

  5. 为解决存储型xss和sql注入漏洞,创建对应的全局过滤器

    1.存储型xss漏洞 系统由于未对参数过滤,导致可以存储html特殊标签,且返回的数据未经处理显示在web页面中导致存在存储型xss,攻击者可利用xss对用户发起鱼叉攻击获取cookie进入系统.为解 ...

  6. Mvc全局过滤器与Action排除

    如何一次性给所有action做登录验证过滤,如何排除不需要做登录验证的action? 1. 如何让某个Action未登录就不能执行? 先封装一个判断是否登录的函数. 目标Action中调用这个函数,如 ...

  7. Gateway网关-全局过滤器

    全局过滤器 上一节学习的过滤器,网关提供了31种,但每一种过滤器的作用都是固定的.如果我们希望拦截请求,做自己的业务逻辑则没办法实现. 全局过滤器作用 全局过滤器的作用也是处理一切进入网关的请求和微服 ...

  8. 在Asp.Net Core中使用ModelConvention实现全局过滤器隔离

    从何说起 这来自于我把项目迁移到Asp.Net Core的过程中碰到一个问题.在一个web程序中同时包含了MVC和WebAPI,现在需要给WebAPI部分单独添加一个接口验证过滤器IActionFil ...

  9. 前端学习(2731):重读vue电商网站41之自定义格式化时间的全局过滤器

    在 main.js 入口文件全局注册格式化时间的过滤器,代码如下所示: Javascript // 自定义格式化时间的全局过滤器 Vue.filter('dataFormat', function(o ...

最新文章

  1. python直方图hist用法参数详解
  2. 再迎利好,“预共识”或能助力BCH“零确认”安全可靠
  3. 两个命令把 Vim 打造成 Python IDE
  4. HTML5之内嵌框架
  5. 28335的CPU定时器解析
  6. pandas-数据分析
  7. 内存模型 C++ 和Java内存模型
  8. PostgreSQL学习手册(二) 模式(Schema)
  9. CMake 常用的预定义变量
  10. ThreadLocal初识
  11. Asp.net的生命周期之应用程序生命周期
  12. Maven:浅析依赖(dependency)关系中 scope 的含义(转)
  13. python编程最大值_python求最大值最小值方法总结
  14. PTA 10-99 3-1-(b) 查询st1制片公司的总裁
  15. Python简介及入门
  16. 若关于x,y的方程组ax+3y=9,2x-y=1无解,则a的值为()
  17. OpenHarmony 3.1Release 电话功能演示—基于润和DAYU200开发套件
  18. 怎样用JS实现关闭当前窗口
  19. 自动化测试概述/自动化工具
  20. 带癞子麻将查表判断胡牌高效率低内存算法

热门文章

  1. SAR舰船数据集----SSDD
  2. Couldn’t load custom C++ ops.
  3. qt 实现导航栏切换页面功能 stackedWidget
  4. 那些年,我们一起读过的《JAVA与模式》
  5. HackTheBox——Beep
  6. 浪潮森林防火智能监控解决方案
  7. SQLServer uniqueidentifier 类型
  8. 一分钟了解英语表达,作为上一段话的总结:综上所述
  9. c++--标准模板库(STL)
  10. 95文件及文件夹操作实践