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);
            }
        }
    }





  • 相关阅读:
    Javascript基础与面向对象基础~第四讲 Javascript中的类对象
    转:正确区分不同的查找算法count,find,binary_search,lower_bound,upper_bound,equal_range
    原码,补码,反码相互转化
    c++模板类/模板函数的声明与定义应该放在头文件里
    低调做人,高调做事
    汇编 一道小题
    保罗·格雷厄姆(Paul Graham
    Microsoft Word已停止工作的解决办法
    转:中国互联网十五年的22个创新模式
    转:二进制、八进制、十进制、十六进制之间转换
  • 原文地址:https://www.cnblogs.com/dearbeans/p/9354627.html
Copyright © 2011-2022 走看看