Html.Action invokes the controller's action, which means it instantiates the controller entity, calls an action method, which builds a model an returns a view result.
Html.Partial uses already created model (or can be called without model at all) to render a specified view.
When to use one over the other? If you already have a model and just want to have a reusable view, opt to Html.Partial. If you see that some piece deserves its own model and action, maybe it makes sense to use Html.Action.
This question is discussed in much greater details in this article, and what you see above is basically an excerpt from it.
Html.Action
invokes the controller's action, which means it instantiates the controller entity, calls an action method, which builds a model an returns a view result.Html.Partial
uses already created model (or can be called without model at all) to render a specified view.When to use one over the other? If you already have a model and just want to have a reusable view, opt to
Html.Partial
. If you see that some piece deserves its own model and action, maybe it makes sense to useHtml.Action
.This question is discussed in much greater details in this article, and what you see above is basically an excerpt from it.