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





  • 相关阅读:
    将字典或者数组转换成JSON数据或者字符串
    [翻译] VICMAImageView
    [翻译] TransitionKit
    [翻译] UIGlossyButton
    [翻译] MMMaterialDesignSpinner
    [翻译] AFSoundManager
    实现UIView的无限旋转动画(非CALayer动画)
    【转】Winform 去掉 最大化 最小化 关闭按钮(不是关闭按钮变灰)终极解决办法
    【转】C# winform 安装程序打包(自定义操作)
    【转】C#安装包(自动卸载低版本)
  • 原文地址:https://www.cnblogs.com/dearbeans/p/9354627.html
Copyright © 2011-2022 走看看