ControllerBase包含三种方法:
我找不到很多关于这些的信息。建议使用Initialize代替Execute。谁能知道这些方法的目的吗?在这种情况下,他们应该根据良好做法使用?
答案 0 :(得分:3)
Execute
方法来自IController
接口并且所有控制器都拥有。在默认实现(ControllerBase
)中,Execute方法首先调用Initialize
方法,然后调用ExecuteCore
方法。 Initialize方法是上下文可用的地方。这是管道执行中最早的方法,您可以在其中访问与HttpContext相关的内容。例如,如果您尝试在控制器的构造函数中访问它,您将获得NRE。 ExecuteCore
方法负责加载TempData,在给定action
路由数据值的情况下查找并执行正确的操作,最后保存TempData。