在控制器上执行核心/执行/初始化之间有所不同

本文关键字:执行 初始化 之间 有所不同 核心 控制器 | 更新日期: 2023-09-27 18:35:29

ASP.NET MVC 中的 ControllerBase 包含三种方法:

  • 执行
  • 初始化
  • 执行核心

我找不到很多关于这些的信息。只是建议使用初始化而不是执行。有人知道这些方法的目的吗?在哪种情况下,应该根据良好做法使用它们?

在控制器上执行核心/执行/初始化之间有所不同

Execute 方法是来自 IController 接口且所有控制器都具有的方法。在默认实现(ControllerBase)中,Execute方法首先调用Initialize方法,然后调用ExecuteCore方法。初始化方法是上下文变为可用的位置。这是管道执行中最早的方法,您可以在其中访问与 HttpContext 相关内容。例如,如果您尝试在控制器的构造函数中访问它,您将获得一个 NRE。ExecuteCore 方法负责加载 TempData,在给定action路由数据值的情况下查找并执行要执行的正确操作,最后保存 TempData。