vista una que partialview parcial mvc example asp.net-mvc asp.net-mvc-partialview

asp.net-mvc - una - render partial view mvc 5 example



MVC Html.Partial o Html.Action (2)

Estos son los que considero mis directrices sobre el uso de Html.Action o Html.Partial

Html.Partial

  1. Use Html.Partial cuando esté Html.Partial contenido estático o,
  2. Si va a pasar datos del ViewModel que se está enviando a la vista principal

Html.Action

  1. Use Html.Action cuando realmente necesite recuperar datos adicionales del servidor para completar la vista parcial

Básicamente, si es estático, use Html.Partial() . Si es dinámico, datos independientes del modelo, use Html.Action() . Probablemente haya más escenarios, pero esto le dará una buena idea de dónde / cómo ir. Html.RenderPartial() y Html.RenderAction() son intercambiables para las funciones mencionadas anteriormente.

Soy nuevo en asp.net MVC así que por favor tengan paciencia conmigo. Necesito crear un menú que se repita en múltiples vistas. Lo que serviría mejor al propósito Html.Action O Html.Partial .


Html.Partial: renderiza una vista parcial sin tocar primero una acción del controlador. Ver: Vistas parciales

Html.Action Call a Controller Action , que puede devolver una vista / vista parcial (o no, podría arrojar un HttpNotFound o devolver Json u otras cosas).

¿Su menú requiere un modelo de vista, o es estático?

Si se trata de un menú estático, Html.Partial se ajustará a sus necesidades. Coloque el contenido del menú estático dentro de la vista parcial y llame a Html.Partial donde desee que se Html.Partial .

Si el menú se genera fuera de un modelo de vista, puede usar Html.Partial o Html.Action :

Encadenando el modelo de vista usando Html.Partial :

public class MenuViewModel { // menu data goes here } public class GeneralViewModel : MenuViewModel { // general view info goes here } public ActionResult Index() { return View(new GeneralViewModel()); } // View Code @model GeneralViewModel <div>@Html.Partial("_partialName", model)</div>

Aquí pasamos un modelo de vista completo a la vista y la vista llama a Parcial y entrega su modelo a la vista parcial.

** Separación del modelo usando Html.Acción: **

public ActionResult Index() { return View(new GeneralViewModel()); } public ActionResult MenuView() { return PartialView(new MenuViewModel()); } // View Code @model GeneralViewModel <div>@Html.Action("MenuView")</div>

Aquí la vista llama a la acción del controlador MenuView que crea un nuevo modelo de vista y lo pasa al parcial.