97 votes

Rasoir : @Html.Partial() vs @RenderPage()

Quel est le moyen approprié de rendre un modèle de l’enfant ?

Et quelle est la différence ? Les deux semblent fonctionner pour moi.

Et pourquoi fait `` ne fonctionne plus ?

133voto

Annabelle Points 4476
Html.Partial("MyView")

Rend le "Mavue" en vue d'une MvcHtmlString. Il suit les règles standard pour l'affichage de recherche (par exemple, l'enregistrement du répertoire courant, puis vérifier l' Shared répertoire).

Html.RenderPartial("MyView")

Fait la même chose que Html.Partial(), sauf qu'il écrit sa sortie directement du flux de la réponse. C'est plus efficace, parce que le contenu de l'affichage n'est pas mis en mémoire tampon. Cependant, parce que la méthode ne retourne pas une sortie, @Html.RenderPartial("MyView") ne fonctionne pas. Vous devez placer l'appel d'un bloc de code à la place: @{Html.RenderPartial("MyView");}.

RenderPage("MyView.cshtml")

Rend la vue spécifiée (identifié par le chemin d'accès et nom de fichier plutôt que par le nom de la vue) directement sur le flux de réponse, comme Html.RenderPartial(). Vous pouvez indiquer n'importe quel modèle qui vous plait à la vue de l'inclure comme deuxième paramètre

RenderPage("MyView.cshtml", MyModel)

17voto

Ryan Sampson Points 2898

Je préfère

Plus de

Seulement parce que la syntaxe est plus facile et il est plus lisible. Autre que celui là ne semble pas être n’importe quelle fonctionnalité de différences sage.

EDIT : Un avantage de RenderPartial est vous n’avez pas à spécifier le chemin d’accès complet ou extension de fichier, il recherchera la commune place automatiquement.

8voto

Mike Brind Points 11445

Html.Partial utilise le MVC Html Helper alors que RenderPage est une chose de Pages Web. Il s’agit de WebPageRenderingBase. Finalement, c’est une question de goût. Certaines personnes ne peuvent pas obtenir sur le fait que MVC est tributaire des Pages Web ASP.NET (la Fondation de WebMatrix) et préfère ne pas se rappeler de qui, quand ils regardent leur afficher le code.

6voto

Omid Shariati Points 759

Le RenderPartial méthode ne retourne pas de balises HTML comme la plupart des autres méthodes d'assistance. Au lieu de cela, il écrit le contenu directement sur le flux de réponse, c'est pourquoi nous devons l'appeler comme une ligne complète de C#, à l'aide d'un point-virgule.

Ce qui est légèrement plus efficace que la mise en mémoire tampon du rendu HTML de la vue partielle, puisqu'il sera écrit à la flux de réponse de toute façon. Si vous préférez une approche plus cohérente de la syntaxe, vous pouvez utiliser le Html.Partielle de la méthode, fait exactement la même chose que le RenderPartial méthode, mais renvoie un fragment HTML et peut être utilisé comme @Html.Partielle (le"Produit", p).

2voto

bayram Points 36

Nous pouvons également passer modéliser à l’aide de vues partielles. @Html.Partial("MyView","MyModel") ;

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X