十年河东,十年河西,莫欺少年穷
学无止境,精益求精
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基础。谢谢。
@天才卧龙的博客