Aparte del tipo que devuelve y el hecho de que se llame de manera diferente, por supuesto,¿Cuál es la diferencia (si existe) entre Html.Partial (ver, modelo) y Html.RenderPartial (ver, modelo) en MVC2?
<% Html.RenderPartial(...); %>
<%= Html.Partial(...) %>
Si son diferentes, ¿por qué llamar a uno más que el otro?
Las definiciones:
// Type: System.Web.Mvc.Html.RenderPartialExtensions
// Assembly: System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
// Assembly location: C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET MVC 2\Assemblies\System.Web.Mvc.dll
using System.Web.Mvc;
namespace System.Web.Mvc.Html
{
public static class RenderPartialExtensions
{
public static void RenderPartial(this HtmlHelper htmlHelper, string partialViewName);
public static void RenderPartial(this HtmlHelper htmlHelper, string partialViewName, ViewDataDictionary viewData);
public static void RenderPartial(this HtmlHelper htmlHelper, string partialViewName, object model);
public static void RenderPartial(this HtmlHelper htmlHelper, string partialViewName, object model,
ViewDataDictionary viewData);
}
}
// Type: System.Web.Mvc.Html.PartialExtensions
// Assembly: System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
// Assembly location: C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET MVC 2\Assemblies\System.Web.Mvc.dll
using System.Web.Mvc;
namespace System.Web.Mvc.Html
{
public static class PartialExtensions
{
public static MvcHtmlString Partial(this HtmlHelper htmlHelper, string partialViewName);
public static MvcHtmlString Partial(this HtmlHelper htmlHelper, string partialViewName,
ViewDataDictionary viewData);
public static MvcHtmlString Partial(this HtmlHelper htmlHelper, string partialViewName, object model);
public static MvcHtmlString Partial(this HtmlHelper htmlHelper, string partialViewName, object model,
ViewDataDictionary viewData);
}
}
Ok, entonces no hay :) como pensé, puedo usarlos a la perfección, supongo. Gracias :) –
no, la diferencia es el tipo de devolución, como dijo SLaks. Esto no es trivial. En lo que respecta al rendimiento, se ha afirmado que la renderización directa a la secuencia de salida es mejor (que fue la razón por la que fueron w/the void RenderPartial para comenzar). Parcial es principalmente útil (imo) en las pruebas, aunque como SLaks dijo que puede haber algunos lugares en los que desee manipular el resultado antes de representarlo en el código de producción. Ellos son raros, imo. – Paul
Parcial también es útil cuando desea obtener el resultado de una vista en el controlador. Esto se puede usar para usar una vista para formatear un correo electrónico. – Samg