MVC 过滤器 Filter(一) 记一次写日志的经历

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/fy809178958/article/details/51828720

1.建一个类 TestFilterAttribute  继承 ActionFilterAttribute  注意应用命名空间 using System.Web.Mvc;

public class TestFilterAttribute : ActionFilterAttribute
    {
        public string Message { get; set; }


        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            base.OnActionExecuting(filterContext);
            filterContext.HttpContext.Response.Write("Action执行之前" + Message + "<br />");
        }


        public override void OnActionExecuted(ActionExecutedContext filterContext)
        {
            base.OnActionExecuted(filterContext);
            filterContext.HttpContext.Response.Write("Action执行之后" + Message + "<br />");
        }


        public override void OnResultExecuting(ResultExecutingContext filterContext)
        {
            base.OnResultExecuting(filterContext);
            filterContext.HttpContext.Response.Write("返回Result之前" + Message + "<br />");
        }


        public override void OnResultExecuted(ResultExecutedContext filterContext)
        {
            base.OnResultExecuted(filterContext);
            filterContext.HttpContext.Response.Write("返回Result之后" + Message + "<br />");
        }
    }

2.在控制器上加上该类的前缀 TestFilter

  [TestFilter]
        public ActionResult Index()
        {
            ViewBag.Message = "Modify this template to jump-start your ASP.NET MVC application.";


            return View();
        }

该过滤器可以 获取 继承自ActionResult的请求 或者ActionResult的请求 执行的 前   后 及 结果返回前 后的 的4个过程,我是把日志记录在请求返回后的这一步 

展开阅读全文

没有更多推荐了,返回首页