zoukankan      html  css  js  c++  java
  • OnActionExecuting和OnActionExecuted执行顺序

    ASP.NET MVC里面我们要自定义ActionFilter的时候会发现有4个方法可以override:OnActionExecuting,OnActionExecuted,OnResultExecuting,OnResultExecuted。他们分别在什么时候执行一直是困扰人类的一个问题。我代表人类做了一个简单的实验:

    首先自定义一个ActionFilter,每个方法执行的时候都在VS的OUTPUT窗口输出信息:

    public class TestActionFilter : ActionFilterAttribute
    {
        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            Debug.WriteLine("OnActionExecuting");
            base.OnActionExecuting(filterContext);
        }
    
        public override void OnActionExecuted(ActionExecutedContext filterContext)
        {
            Debug.WriteLine("OnActionExecuted");
            base.OnActionExecuted(filterContext);
        }
    
        public override void OnResultExecuting(ResultExecutingContext filterContext)
        {
            Debug.WriteLine("OnResultExecuting");
            base.OnResultExecuting(filterContext);
        }
    
        public override void OnResultExecuted(ResultExecutedContext filterContext)
        {
            Debug.WriteLine("OnResultExecuted");
            base.OnResultExecuted(filterContext);
        }
    }

    Controller里为了搞清执行顺序,也需要输出:

    [TestActionFilter]
    public ActionResult Index()
    {
        Debug.WriteLine("Before return View()");
        return View();
    }

    最后是View:

    @{
        Debug.WriteLine("Hello from Index.cshtml");
    }

    执行结果是这样的,有图有JJ:

    1. OnActionExecuting

    2. Before return View()

    3. OnActionExecuted

    4. OnResultExecuting

    5. Hello from Index.cshtml

    6. OnResultExecuted

  • 相关阅读:
    greenDAO缓存遇到的大坑的解决方法
    hdoj-1004-Let the Balloon Rise(map排序)
    hdu-2673-shǎ崽 OrOrOrOrz(水题)
    hdoj-1106-排序(stringstream)
    CodeForces
    hdoj-1027-Ignatius and the Princess II(逆康拓展开)
    Alex and broken contest CodeForces
    hdoj-1715-大菲波数(大斐波那契数列)
    nyoj-155-求高精度幂(java大数)
    nyoj-655-光棍的yy(大斐波那契数列)
  • 原文地址:https://www.cnblogs.com/doudouzi/p/12076693.html
Copyright © 2011-2022 走看看