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基礎。謝謝。

@天才卧龍的博客


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM