zoukankan      html  css  js  c++  java
  • Net Core 页面的生命周期 + OnActionExecuting

    十年河东,十年河西,莫欺少年穷

    学无止境,精益求精

    NetCore页面的生命周期如下图:

    具体代码执行顺序如下:

    控制器基类

        public class MoviesController : BaseController
        {
            private readonly MvcMovieContext _context;
    
            /// <summary>
            /// 第2步执行基类的构造函数
            /// </summary>
            /// <param name="context"></param>
            public MoviesController(MvcMovieContext context)
            {
                _context = context;
            }
    
            /// <summary>
            /// 第5步执行Action方法
            /// </summary>
            /// <returns></returns>
            public async Task<IActionResult> Index()
            {
                return View(await _context.Movie.ToListAsync());
            }
        }
    View Code

    父控制器类

        public class BaseController : Controller
        {
            /// <summary>
            /// 第1步 执行父类控制器构造函数
            /// </summary>
            public BaseController()
            {
    
            }
            /// <summary>
            /// 第3步 执行父类的异步方法  异步方法  似乎可以和OnActionExecuting同时执行
            /// </summary>
            /// <param name="context"></param>
            /// <param name="next"></param>
            /// <returns></returns>
            public override Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next)
            {
                return base.OnActionExecutionAsync(context, next);
            }
    
            /// <summary>
            /// 第4步 执行OnActionExecuting方法
            /// </summary>
            /// <param name="context"></param>
            public override void OnActionExecuting(ActionExecutingContext context)
            {
                base.OnActionExecuting(context);
            }
    
            /// <summary>
            /// 第6步 Aciton执行完毕后 执行 OnActionExecuted
            /// </summary>
            /// <param name="context"></param>
            public override void OnActionExecuted(ActionExecutedContext context)
            {
                base.OnActionExecuted(context);
            }
    
            
        }
    View Code

    以上便是NetCore 子父控制器执行顺序。

    本人初学NetCore,我认为基础决定上层建筑,要想走的更远,更高,就必须一丝不苟的学习NetCore基础。谢谢。

    @天才卧龙的博客

  • 相关阅读:
    bzoj1625 / P2871 [USACO07DEC]手链Charm Bracelet
    bzoj1623 / P2909 [USACO08OPEN]牛的车Cow Cars
    bzoj1622 / P2908 [USACO08OPEN]文字的力量Word Power
    bzoj1621 / P2907 [USACO08OPEN]农场周围的道路Roads Around The Farm
    bzoj1620 / P2920 [USACO08NOV]时间管理Time Management
    [3.10校内训练赛]
    [bzoj1084][SCOI2005]最大子矩阵
    [bzoj1500][NOI2005]维修数列
    bzoj省选十连测推广赛
    多项式插值学习记录
  • 原文地址:https://www.cnblogs.com/chenwolong/p/OnActionExecuting.html
Copyright © 2011-2022 走看看