vistas vista una template renderbody parcial pagina mvc multiples modelos misma cshtml cargar _layout asp.net-mvc-3 razor asp.net-mvc-3-areas

asp.net-mvc-3 - vista - render partial view mvc 5



mvc3-usando vistas parciales en un área diferente (4)

Tengo dos preguntas con respecto a las vistas parciales ...

  1. Cuándo usar los métodos de Vistas parciales vs @helper, he usado ambos de manera intercambiable y me gustaría ser más consistente en su uso. ¿Qué hacen chicos?

  2. ¿Cómo se hace referencia a una vista parcial de otra área.

Tengo un área llamada admin y tengo una vista parcial en el directorio de vistas normal. ¿Cómo lo uso? He intentado lo siguiente que no funciona, ya que no se puede encontrar.

@Html.Partial(VirtualPathUtility.ToAbsolute("~/Views/ControllerName/_PartialView"), Model)

otro lo he intentado

@Html.Partial("~/Views/ControllerName/_PartialView", Model)


Desde que el interrogador preguntó sobre áreas, aquí se explica cómo hacerlo en un área.

@Html.Partial("~/Areas/Store/Views/Pages/Checkout.cshtml")


No estoy seguro de si te refieres a ayudantes Html o ayudantes de afeitar cuando dices "ayudantes". En cualquier caso, solo creo ayudantes Html cuando se trata de un elemento individual pequeño, como un control.

Si te refieres a los ayudantes de Razor, entonces son diferentes de los parciales en que puedes llamarlos como funciones, pasando los parámetros que quieras. Los parciales están en gran parte estancados con el sistema "modelo" (y, por supuesto, Temp / ViewData / Bag).

Se trata de cómo quieres trabajar con el código.

En cuanto a su parcial. Tienes que incluir el sufijo.

@Html.Partial("~/Views/ControllerName/_PartialView.cshtml", Model)


Otra opción es hacer que la vista parcial que desea compartir entre áreas se COMPARTE.

Así que lo pones en la carpeta principal ~ / Vistas / Compartido /, por ejemplo

~/Views/Shared/_MyPartialView.cshtml.

A continuación, puede referirse a él desde cualquier área diciendo

@Html.Partial("_MyPartialView")


Solo estoy dando un ejemplo específico y simple de lo que estoy tratando de hacer. Necesito poder cerrar sesión en una página de área usando la vista parcial ubicada en la carpeta compartida principal. Esto es lo que hice:

  1. En la vista de área me refiero a la vista parcial por

    <div class="float-right"> <section id="login"> **@Html.Partial("~/Views/Shared/_LoginPartial.cshtml")** </section> </div>

  2. En la carpeta compartida principal donde se ubicó el código _LoginPartial , agregué {new = area ("")} , desde:

    using (Html.BeginForm("LogOff", "Account", FormMethod.Post, new { id = "logoutForm", @class = "navbar-right" }))

    a:

    using (Html.BeginForm("LogOff", "Account", **new { area = "" },** FormMethod.Post, new { id = "logoutForm", @class = "navbar-right" }))

¡Espero que eso ayude de algún modo!