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

新建一个MVC4项目,可以在global.asax文件中看到如下代码:  FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
表示注册全局过滤器.
GlobalFilters是全局过滤器的集合,可以通过add方法添加过滤器,默认情况下,HandleErrorAttribute过滤器被添加到集合中。
接下来我们创建一个自定义过滤器,然后添加到全局过滤器集合中。

1.创建自定义过滤器
  创建自定义过滤器要继承ActionFilterAttribute类。我们创建一个名称为CustomerFilterAttribute的过滤器,在action里面记录下时间。
    代码如下:
public class CustomerFilterAttribute : ActionFilterAttribute
        {

public override void OnActionExecuting(ActionExecutingContext filterContext)
            {
                base.OnActionExecuting(filterContext);
                filterContext.HttpContext.Response.Write("开始时间:" + DateTime.Now.ToString() + "<br/>");
            }

public override void OnActionExecuted(ActionExecutedContext filterContext)
            {
                base.OnActionExecuted(filterContext);
                var controllerName = filterContext.RouteData.Values["controller"].ToString();
                var actionName = filterContext.RouteData.Values["action"].ToString();

filterContext.HttpContext.Response.Write("结束时间:" + DateTime.Now.ToString() + "<br/>");
                filterContext.HttpContext.Response.Write("controller:" + controllerName + ",action:" + actionName);
            }
        }
2.注册全局过滤器

过滤器创建完成后,我们把这个过滤器添加到全局过滤器中,使用  filters.Add(new CustomerFilterAttribute());方法,
代码如下:
 public class FilterConfig
    {
        public static void RegisterGlobalFilters(GlobalFilterCollection filters)
        {
            filters.Add(new HandleErrorAttribute());
            filters.Add(new CustomerFilterAttribute());
        }
    }
接下来我们运行项目中的每一个页面,都会看到页面中输出时间和controller名称,效果图如下:

本文内容来源:http://blog.csdn.net/zx13525079024/article/details/19161777

MVC全局过滤器的更多相关文章

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

    http://blog.csdn.net/shuaihj/article/details/53020428 如何一次性给所有action做登录验证过滤,如何排除不需要做登录验证的action? 1. ...

  2. mvc全局过滤器和httpmodule的执行顺序

    根据http管线模型,请求先通过httpmodule,再通过httphandler,之后再进入mvc的过滤器 另外参考:MVC如何在Pipeline中接管请求的? http://www.cnblogs ...

  3. .Net Core MVC全局过滤器验证是否需要登录

    1.新增全局登录过滤器LoginCheckAttribute 1 public class LoginCheckAttribute: ActionFilterAttribute 2 { 3 publi ...

  4. ASP.NET MVC 全局过滤器(FilterConfig)、标记在控制器上和方法上的筛选器执行顺序

    FilterConfig->控制器上的筛选器-->方法上的筛选器(大-->小,上-->下) 全局-->控制器->个别 尝试的时候记得把返回true protecte ...

  5. MVC 全局过滤器

    1. 新创建一个类 CheckLogin2. 在类中加入以下代码 public class CheckLogin : ActionFilterAttribute { public override v ...

  6. MVC 全局拦截aciton

    上篇:MVC 拦截指定的action 有时,我们需要对所有aciton在执行前/后做一些(预)处理,如何实现呢? 1.定义一个action筛选类.继承至System.Web.Mvc.IActionFi ...

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

    前言当我们访问某个网站的时候需要检测用户是否已经登录(通过Session是否为null),我们知道在WebForm中可以定义一个BasePage类让他继承System.Web.UI.Page,重写它的 ...

  8. MVC下用户登录状态校验的问题以及解决方案--------------Action全局过滤器的使用

    前言当我们访问某个网站的时候需要检测用户是否已经登录(通过Session是否为null),我们知道在WebForm中可以定义一个BasePage类让他继承System.Web.UI.Page,重写它的 ...

  9. MVC 全局异常过滤器HandleErrorAttribute

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ...

随机推荐

  1. arcgis python xlstoshp

    import xlrd # must init xlrd import arcpy # param arcpy.env.workspace = r"F:\note\python\ArcPy& ...

  2. MapReduce On Yarn的配置详解和日常维护

    MapReduce On Yarn的配置详解和日常维护 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.MapReduce运维概述 MapReduce on YARN的运维主要是 ...

  3. 在arm上执行某个程序时总是提示 not found是怎么回事?

    答: 使用ldd查看程序是否缺少库,如果缺少库,那么就从交叉编译工具链中获取并复制到arm的根文件系统中

  4. Vs code调试Dart语言

    1.下载Dart SDK,地址:Dart Windows下载 安装稳定版本,安装完看看有没有配置系统变量. 2.在VS code中安装Dart和Code Runner插件: 3.如果Dart有乱码输出 ...

  5. Redis的各项功能解决了哪些问题?(转)

    http://www.cnblogs.com/linianhui/p/what-problem-does-redis-solve.html 先看一下Redis是一个什么东西.官方简介解释到:Redis ...

  6. xhprof代码添加分析性能

    <?php xhprof_enable( XHPROF_FLAGS_MEMORY, [ 'ignored_functions' => [ //'call_user_func', //'ca ...

  7. RabbitMQ简单Java示例——生产者和消费者

    添加Maven依赖: 使用rabbitmq-client的最新Maven坐标: <!-- https://mvnrepository.com/artifact/com.rabbitmq/amqp ...

  8. Jmeter 逻辑控制器 之 交替控制器

    马上国庆节了,没有安排新版本的上线任务,所以最近自学时间比较充裕,决定把Jmeter好好学习学习,并把学习过程分享到博客中,今天呢,学习交替控制器. 一.认识交替控制器 如下,在线程组下面创建一个交替 ...

  9. 跨服务器执行SQL

    --exec sp_helpserver 可以以存储过程形式执行以下: --1.1 创建登录信息(或叫创建链接服务器登录名映射)(只需选择一种方式) --1.1.1 以windows认证的方式登录 / ...

  10. XSS 攻击的预防

    XSS 攻击有两大要素: 1.攻击者提交恶意代码. 2.浏览器执行恶意代码. 针对第一个要素:我们是否能够在用户输入的过程,过滤掉用户输入的恶意代码呢? 输入过滤 在用户提交时,由前端过滤输入,然后提 ...