Respuestas:
Html.Partial("MyView")
Renderiza la vista "MyView" en un MvcHtmlString
. Sigue las reglas estándar para la búsqueda de vistas (es decir, verifique el directorio actual, luego verifique el Shared
directorio).
Html.RenderPartial("MyView")
Hace lo mismo que Html.Partial()
, excepto que escribe su salida directamente en el flujo de respuesta. Esto es más eficiente porque el contenido de la vista no se almacena en la memoria. Sin embargo, debido a que el método no devuelve ningún resultado, @Html.RenderPartial("MyView")
no funcionará. Usted tiene que envolver la llamada en un bloque de código en su lugar: @{Html.RenderPartial("MyView");}
.
RenderPage("MyView.cshtml")
Muestra la vista especificada (identificada por la ruta y el nombre del archivo en lugar de por el nombre de la vista) directamente en el flujo de respuesta, como Html.RenderPartial()
. Puede suministrar cualquier modelo que desee a la vista incluyéndolo como segundo parámetro
RenderPage("MyView.cshtml", MyModel)
@Html.Partial("MyView")
vs@{Html.RenderPartial("MyView");}
RenderPage
? Quiero anidar una página diferente especificando un parámetro de consulta específico, que a su vez filtraría los datos en esa página y, además, eliminaría su propio diseño.
yo prefiero
@RenderPage("_LayoutHeader.cshtml")
Encima
@{ Html.RenderPartial("_LayoutHeader"); }
Solo porque la sintaxis es más fácil y más legible. Aparte de eso, no parece haber diferencias en cuanto a funcionalidad.
EDITAR: Una ventaja de RenderPartial es que no tiene que especificar la ruta completa o la extensión del archivo, buscará los lugares comunes automáticamente.
RenderPage
por la sintaxis.
El método RenderPartial no devuelve marcado HTML como la mayoría de los otros métodos auxiliares. En cambio, escribe contenido directamente en el flujo de respuesta, por lo que debemos llamarlo como una línea completa de C #, usando un punto y coma.
Esto es un poco más eficiente que almacenar en búfer el HTML renderizado desde la vista parcial, ya que se escribirá en el flujo de respuesta de todos modos. Si prefiere una sintaxis más coherente, puede utilizar el método Html.Partial , que hace exactamente lo mismo que el método RenderPartial , pero devuelve un fragmento HTML y se puede utilizar como @ Html.Partial ("Product", p).
@RenderPages()
Lo anterior no funciona en ASP.NET MVC. Solo funciona en páginas web.
@Html.Partial("_Footer")
Deberá utilizar lo anterior en ASP.NET MVC.