我读过以下关于MVC页面生命周期的文章:
http://blogs.msdn.com/b/varunm/archive/2013/10/03/understanding-of-mvc-page-life-cycle.aspx?CommentPosted=true#commentmessage
但在第五点的第一节中提到(引用):
控制器通常要么执行RedirectToAction方法,要么执行RenderView方法.,当调用控制器的RenderView()方法时,调用被委托给当前的ViewEngine的RenderView()方法。
(见上面粗体的文本。)在查看控制器班级时,我发现那里没有RenderView方法。
因此,我无法找到代码委托调用ViewEngines RenderView方法的缺失链接,因为Controller类中没有RenderView (方法、委托、虚拟方法、抽象方法)。
如能作出解释,将不胜感激。提前谢谢。
发布于 2014-03-30 09:20:11
控制器不负责调用RenderView方法。是ControllerActionInvoker执行控制器操作,并从控制器操作调用返回的ActionResult上的ExecuteResult方法。所有这些都发生在Controller的Controller方法中。
然后,根据实际的ActionResult类,会发生不同的事情。如果返回一个ViewResult或PartialViewResult,则ExecuteResult方法将将实际执行委托给视图引擎。最后,视图引擎将调用RenderView方法。
从控制器内部,您不能也不应该呈现视图。在MVC中,这不是控制器的责任。
https://stackoverflow.com/questions/22742177
复制相似问题