C# 控制器上的ExecuteCore/Execute/Initialize之间有哪些不同?
在ASP.NET中,MVC包含三种方法:C# 控制器上的ExecuteCore/Execute/Initialize之间有哪些不同?,c#,asp.net,asp.net-mvc,C#,Asp.net,Asp.net Mvc,在ASP.NET中,MVC包含三种方法: 我找不到很多关于这些的信息。只是建议使用,而不是。有人知道这些方法的目的吗?在哪种情况下,应根据良好实践使用它们?执行方法是来自IController接口的方法,所有控制器都拥有该方法。在默认实现(ControllerBase)中,Execute方法首先调用Initialize方法,然后调用ExecuteCore方法。Initialize方法是上下文可用的地方。这是管道执行中最早的方法,您可以在其中访问与HttpContext相关的内容。例如,
我找不到很多关于这些的信息。只是建议使用,而不是。有人知道这些方法的目的吗?在哪种情况下,应根据良好实践使用它们?执行方法是来自
IController
接口的方法,所有控制器都拥有该方法。在默认实现(ControllerBase
)中,Execute方法首先调用Initialize
方法,然后调用ExecuteCore
方法。Initialize方法是上下文可用的地方。这是管道执行中最早的方法,您可以在其中访问与HttpContext相关的内容。例如,如果您试图在控制器的构造函数中访问它,您将得到一个NRE。ExecuteCore
方法负责加载TempData,查找并执行正确的操作以执行给定的action
路由数据值,并最终保存TempData。因此,如果我得到正确的execute
将管理所有其他方法。”初始化“设置ControllerContext
,ExecuteCore
设置临时数据”。我应该先避免过度劳累。。可以改变第二个,因为我想建立新的文化等等。。如果我想访问临时数据,请使用第三个。如果我想预定义一些信息(从会话中获取数据等),我应该使用OnActionExecuting
。最后,对于一些最终确定操作,我应该使用OnActionExecuted
。谢谢