The Controller is not responsible for calling RenderView
method. It's the ControllerActionInvoker
that executes the controller action and invokes the ExecuteResult
method on the returned ActionResult
from the controller action. All this happens inside the ExecuteCore
method of the Controller
.
Then depending on the actual ActionResult class different things will happen. If you returned a ViewResult
or a PartialViewResult
, the ExecuteResult
method will delegate the actual execution to the view engine. And finally the view engine will invoke the RenderView
method.
From inside a controller you cannot and should not be rendering views. That's not the responsibility of a controller in MVC.