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 sería mejor para el propósito Html.Action
O Html.Partial
.MVC Html.Partial o Html.Action
Respuesta
Éstos son lo que considero mis directrices sobre el uso de Html.Action o Html.Partial
Html.Partial
- Uso
Html.Partial
cuando se renderiza el contenido estático o, - Si van a pasar datos del ViewModel que se está enviando a la vista principal
Html.Action
- Uso
Html.Action
cuando realmente se necesita para recuperar datos adicionales desde el servidor a poblar la vista parcial
Básicamente, si es estática, utilice 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.
Gracias HTML.Action hizo el truco para mí. –
Buena explicación +1 para ti. – Pamma
Tenga en cuenta que si la aplicación tiene múltiples ciclos a través de controladores, puede hacer que sea un poco más difícil razonar lo que ocurre para una acción determinada, ya que Html.Action() regresa a un controlador potencialmente diferente. Dependiendo de sus implementaciones/dependencias, esto puede ser costoso también, y [filters] (http://msdn.microsoft.com/en-us/library/gg416513 (vs.98) .aspx) puede ser una alternativa en algunos casos. – Cornelius
Html.Partial: hacer Un Vista parcial sin golpear una acción de controlador en primer lugar. Ver: Partial Views
Html.Action Llamar a un controlador de Acción , que puede devolver una visión/vista parcial (o tal vez no, podría lanzar una HttpNotFound o volver 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 al Html.Partial
donde desea que se muestre.
Si el menú se está generando un modelo de vista, se puede utilizar ya sea Html.Partial
o Html.Action
:
encadenar el modelo de vista utilizando 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 para la vista y la vista llamadas Parcial y manos su modelo fuera de la vista parcial.
** Separar el modelo usando Html.Action: **
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 a la parcial.
Caso 1: Utilice el método @Html.Partial()
si tiene diferentes vistas parciales con diferentes modelos.
Caso 2: Utilice el método @Html.Action()
si tiene una vista parcial con un modelo, pero con datos diferentes.
- 1. ASP.NET MVC: ¿Usar Html.Partial o Html.Action?
- 2. MVC 3 Html.RenderPartial vs Html.Partial
- 3. Pasando el modelo a Html.Action
- 4. render usercontrol (cshtml) usando @ Html.Partial
- 5. Asp.Net MVC 3 - @ Html.Action no procesará/devolverá ningún código HTML
- 6. ASP.net MVC - ¿Puedo decirle a Html.Partial dónde encontrar la vista?
- 7. Razor: @ Html.Partial() vs @RenderPage()
- 8. Html.Action - Obtener frente Mensaje
- 9. ¿Cómo puedo usar Html.Action?
- 10. Diferencia entre Html.RenderAction y Html.Action
- 11. ¿Cómo puedo especificar un espacio de nombres cuando llamo a @ Html.Action (...) en ASP.NET MVC
- 12. ¿Por qué necesita una ruta definida para Html.Action?
- 13. MVC o Rest o Ambos
- 14. Spring MVC o Wicket?
- 15. MVC ASP.NET o Razor
- 16. ASP.NET MVC o WebForms?
- 17. ¿Qué usar? MVC, MVP o MVVM o ...?
- 18. Llamar a @ Html.Partial para mostrar una vista parcial perteneciente a un controlador diferente
- 19. ¿Cuál es la diferencia (si existe) entre Html.Partial (ver, modelo) y Html.RenderPartial (ver, modelo) en MVC2?
- 20. pjax o cliente lado MVC?
- 21. Asp.net MVC json o Json.net?
- 22. MVC 3 Dependency Resolver o Ninject MVC plugin?
- 23. Asp.Net Mvc - Cómo tener un "controlador" en la vista compartida
- 24. ASP MVC HTML Helpers - ¿Bueno o malo?
- 25. DESCANSO usando JAX RS o Spring MVC
- 26. ¿Qué elegir: ASP.NET MVC o RESTful WCF?
- 27. MVC Áreas para empresas, ¿buenas o malas?
- 28. ¿Puede MVC (o MVP) coexistir con SOA?
- 29. ASP.NET MVC - TempData - Buena o mala práctica
- 30. jQuery Mobile Directions ASP.NET o MVC
Sin más información Html.Partial. Ponga su contenido del menú en una vista parcial y llámelo con '@ Html.Partial (" partialViewName ")' – MisterIsaak
Gracias Jissak. – developer747