Quelle est la manière appropriée de rendre un modèle enfant?
Et quelle est la différence? Les deux semblent fonctionner pour moi.
Et pourquoi ne @Html.RenderPartial()
fonctionne plus?
la source
Quelle est la manière appropriée de rendre un modèle enfant?
Et quelle est la différence? Les deux semblent fonctionner pour moi.
Et pourquoi ne @Html.RenderPartial()
fonctionne plus?
Html.Partial("MyView")
Rend la vue "MyView" en un fichier MvcHtmlString
. Il suit les règles standard pour la recherche de vue (c.-à-d. Vérifier le répertoire courant, puis vérifier le Shared
répertoire).
Html.RenderPartial("MyView")
Fait la même chose que Html.Partial()
, sauf qu'il écrit sa sortie directement dans le flux de réponse. C'est plus efficace, car le contenu de la vue n'est pas mis en mémoire tampon. Cependant, comme la méthode ne renvoie aucune sortie, @Html.RenderPartial("MyView")
ne fonctionnera pas. Vous devez envelopper l'appel dans un bloc de code à la place: @{Html.RenderPartial("MyView");}
.
RenderPage("MyView.cshtml")
Rend la vue spécifiée (identifiée par chemin et nom de fichier plutôt que par nom de vue) directement dans le flux de réponse, comme Html.RenderPartial()
. Vous pouvez fournir n'importe quel modèle que vous aimez à la vue en l'incluant comme deuxième paramètre
RenderPage("MyView.cshtml", MyModel)
@Html.Partial("MyView")
vs.@{Html.RenderPartial("MyView");}
RenderPage
? Je souhaite imbriquer une page différente en spécifiant un paramètre de requête spécifique, qui à son tour filtrerait les données de cette page et, en outre, supprimerait sa propre mise en page.je préfère
Plus de
Seulement parce que la syntaxe est plus simple et plus lisible. À part cela, il ne semble pas y avoir de différences en termes de fonctionnalité.
EDIT: L'un des avantages de RenderPartial est que vous n'avez pas à spécifier le chemin complet ou l'extension de fichier, il recherchera automatiquement les lieux communs.
la source
RenderPage
raison de la syntaxe.La méthode RenderPartial ne renvoie pas de balisage HTML comme la plupart des autres méthodes d'assistance. Au lieu de cela, il écrit le contenu directement dans le flux de réponse, c'est pourquoi nous devons l'appeler comme une ligne complète de C #, en utilisant un point-virgule.
C'est légèrement plus efficace que de mettre en mémoire tampon le HTML rendu à partir de la vue partielle, car il sera écrit dans le flux de réponse de toute façon. Si vous préférez une syntaxe plus cohérente, vous pouvez utiliser la méthode Html.Partial , qui fait exactement la même chose que la méthode RenderPartial , mais renvoie un fragment HTML et peut être utilisée comme @ Html.Partial ("Product", p).
la source
Nous pouvons également passer le modèle en utilisant des vues partielles. @ Html.Partial ("MyView", "MyModel");
la source
Ce qui précède ne fonctionne pas dans ASP.NET MVC. Cela ne fonctionne que dans les pages Web.
Vous devrez utiliser ce qui précède dans ASP.NET MVC.
la source