Html.Action will call the Action controller, so it will go through the entire MVC pipeline again (inside the server) to find the controller that will return the ViewResult (although you could theoretically also return JsonResult or something else).
Html.Partial will return PartialPage (as in the CSHTML file) and the entire pipeline will not pass. He will just search using the viewer.
Some benefits to Action are authentication, caching, and other things that happen in the MVC pipeline, while Partial is faster (although there may be more responsibility on a partial page if you need to pass a ViewModel, etc.)
This is a good post (a bit old) about the pros and cons of RenderAction vs RenderPartial
source share