The action result object is what tells the MVC framework what to do. The method Redirect returns an HttpRedirectResult, which inherits from ActionResult. The MVC takes that result and executes the method ExecuteResult on that ActionResult object. That is what is doing the redirect behind the scenes. Now if the Redirect, or any of those methods, don't accomplish what you need to get to the PDF you generated, you can also create your own ActionResult which would handle that correctly. You would just create a class that inherits from ActionResult and implement the ExecuteResult method to redirect, etc... All of the methods like Redirect, RedirectToView, etc. are just creating the appropriate ActionResult for you to return. There is nothing stopping you from creating your own ActionResult and returning it, or even instantiating any of the existing ones and returning it without using the helper methods provided on the controller.