Quelle est la différence (le cas échéant) entre Html.Partial (vue, modèle) et Html.RenderPartial (vue, modèle) dans MVC2?

Autre que le type qu’il retourne et le fait que vous l’appeliez différemment bien sûr

  

S’ils sont différents, pourquoi appelleriez-vous l’un plutôt que l’autre?
Les définitions:

 // 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, ssortingng partialViewName); public static void RenderPartial(this HtmlHelper htmlHelper, ssortingng partialViewName, ViewDataDictionary viewData); public static void RenderPartial(this HtmlHelper htmlHelper, ssortingng partialViewName, object model); public static void RenderPartial(this HtmlHelper htmlHelper, ssortingng 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 MvcHtmlSsortingng Partial(this HtmlHelper htmlHelper, ssortingng partialViewName); public static MvcHtmlSsortingng Partial(this HtmlHelper htmlHelper, ssortingng partialViewName, ViewDataDictionary viewData); public static MvcHtmlSsortingng Partial(this HtmlHelper htmlHelper, ssortingng partialViewName, object model); public static MvcHtmlSsortingng Partial(this HtmlHelper htmlHelper, ssortingng partialViewName, object model, ViewDataDictionary viewData); } } 

La seule différence est que Partial retourne un MvcHtmlSsortingng , et doit être appelé à l’intérieur de < %= %> , alors que RenderPartial renvoie un void et rend directement la vue.

Si vous examinez le code source , vous verrez qu’ils appellent tous les deux la même méthode interne, en transmettant un SsortingngWriter pour le rendre.

Vous devriez appeler Partial si vous souhaitez afficher, enregistrer ou manipuler le code HTML généré au lieu de l’écrire sur la page.

HTML.RenderPartial ne renvoie pas de balisage HTML comme la plupart des autres méthodes d’assistance. Au lieu de cela, la méthode écrit le contenu directement dans le stream de réponses, ce qui explique pourquoi le développeur doit l’appeler comme une ligne entière de C #, en utilisant un point-virgule. Ceci est légèrement plus efficace que de mettre en tampon le rendu HTML de la vue partielle, car il sera de toute façon écrit dans le stream de réponses.