zoukankan      html  css  js  c++  java
  • 自定义asp.net mvc Filter 过滤器

    1新建一个mvc项目:如图

    image

    2、主要创建下面一些类文件

    image


    1、utility目录 放置自定义的过滤器


    using System;
    using System.Collections.Generic;
    using System.Diagnostics;
    using System.Linq;
    using System.Web;
    using System.Web.Mvc;
    using System.Web.Routing;
    
    namespace WebAppTest.utility
    {
        //自定义LogActionFilter继承ActionFilterAttribute
        public class LogActionFilter : ActionFilterAttribute
        {
            /// <summary>
            /// 重写ActionFilterAttribute中的方法
            /// </summary>
            /// <param name="filterContext"></param>
            public override void OnActionExecuting(ActionExecutingContext filterContext)
            {
                Log("OnActionExecuting", filterContext.RouteData);
            }
    
            public override void OnActionExecuted(ActionExecutedContext filterContext)
            {
                Log("OnActionExecuted", filterContext.RouteData);
            }
    
            public override void OnResultExecuting(ResultExecutingContext filterContext)
            {
                Log("OnResultExecuting", filterContext.RouteData);
            }
            public override void OnResultExecuted(ResultExecutedContext filterContext)
            {
                Log("OnResultExecuted", filterContext.RouteData);
            }
            //日志输出
            private void Log(string methodName, RouteData routeData)
            {
                var controllerName = routeData.Values["controller"];
                var actionName = routeData.Values["action"];
                var message = String.Format("{0} controller:{1} action:{2}", methodName, controllerName, actionName);
                Debug.WriteLine(message, "Action Filter Log");
            }
    
        }
    }





    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Http.Controllers;
    using System.Web.Http.Filters;
    using System.Web.Mvc;
    
    namespace WebAppTest.utility
    {
        public class CustomerFilterAttribute : System.Web.Mvc.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);
            }
        }
    }





  • 相关阅读:
    ftp的虚拟用户的使用
    系统进程与线程
    mysql 100%占用的解决
    两张神图介绍python3和 2.x与 3.x 的区别
    python3中__get__,__getattr__,__getattribute__的区别
    Python 数据图表工具的比较
    Spark入门(Python)
    别学框架,学架构
    Python垃圾回收机制
    pyextend库-accepts函数参数检查
  • 原文地址:https://www.cnblogs.com/dearbeans/p/9354627.html
Copyright © 2011-2022 走看看