Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 如何以及何时在MVC页面生命周期中调用ViewEngine的RenderView方法?_Asp.net Mvc_Controller_Page Lifecycle - Fatal编程技术网

Asp.net mvc 如何以及何时在MVC页面生命周期中调用ViewEngine的RenderView方法?

Asp.net mvc 如何以及何时在MVC页面生命周期中调用ViewEngine的RenderView方法?,asp.net-mvc,controller,page-lifecycle,Asp.net Mvc,Controller,Page Lifecycle,我已经阅读了以下关于MVC页面生命周期的文章: 但在第五点的第一节中提到(引用): 控制器通常执行RedirectToAction方法或RenderView方法当您调用控制器的RenderView()方法时,调用被委托给当前ViewEngine的RenderView()方法 (请参阅上面粗体的文本。)查看控制器时,我发现那里没有RenderView方法 因此,我无法找到代码将调用委托给ViewEngines RenderView方法的丢失链接,因为Controller类中没有RenderVie

我已经阅读了以下关于MVC页面生命周期的文章:

但在第五点的第一节中提到(引用):

控制器通常执行RedirectToAction方法或RenderView方法当您调用控制器的RenderView()方法时,调用被委托给当前ViewEngine的RenderView()方法

(请参阅上面粗体的文本。)查看控制器时,我发现那里没有RenderView方法

因此,我无法找到代码将调用委托给ViewEngines RenderView方法的丢失链接,因为Controller类中没有RenderView(方法、委托、虚拟方法、抽象方法)


如能作出解释,将不胜感激。提前感谢。

控制器不负责调用
RenderView
方法。它是执行控制器操作并对从控制器操作返回的
ActionResult
调用方法的。所有这些都发生在
控制器的
ExecuteCore
方法中

然后根据实际的ActionResult类,会发生不同的事情。如果返回了
ViewResult
PartialViewResult
,则
ExecuteResult
方法将实际执行委托给视图引擎。最后,视图引擎将调用
RenderView
方法


从控制器内部,您不能也不应该渲染视图。这不是MVC中控制器的责任。

Darin已经发布了关于管道这一部分的正确解释,但是,为了明确起见,这篇文章是错误的。谢谢Ant p。你能给我推荐一篇文章,让我获得正确的信息吗?谢谢Darin的解释。您还可以为我提供一个链接,在这里我可以获得有关MVC页面生命周期的完整信息,您认为这也是正确的。当然,这里是: