1. RenderBody Dans le moteur Razor, il n’y a pas de « page maîtresse », une page appelée « layout » (_Layout.cshtml) est placée dans le dossier de vue partagée. Sur cette page, vous verrez une mention dans le tag : @RenderBody() En fait, cela fonctionne de manière similaire au contrôle serveur dans la page maîtresse : lorsqu’une vue basée sur cette page de mise en page est créée, le contenu de la vue est fusionné avec la page de mise en page, et le contenu de la nouvelle vue est rendu entre les étiquettes via la méthode @RenderBody() de la page de mise en page. Cette méthode ne nécessite pas de paramètres et ne peut apparaître qu’une seule fois. 2. RenderPage Comme vous pouvez le deviner d’après le nom, cette méthode consiste à présenter une page. Par exemple, l’en-tête fixe d’une page web peut être placé séparément dans un fichier de vue partagée, puis appelé de cette façon dans la page de mise en page, comme suit : @RenderPage(« ~/Views/Shared/_Header.cshtml ») Avec des paramètres @RenderPage(« ~/Views/Shared/_Header.cshtml »,new{parm="my »,parm2="you ») Appelez la page pour obtenir les paramètres : Faites passer les paramètres par RenderPage(). @PageData[« param »] 3. Section de rendu La page de mise en page contient également le concept de section, c’est-à-dire que si une section est définie dans un modèle de vue, elle peut être présentée séparément de la manière suivante : @RenderPage(« ~/Views/Shared/_Header.cshtml ») @RenderBody()
//模板里添加了一个节 @RenderSection (« tête ») Bien sûr, définissez également la section dans la vue, sinon une exception surviendra : @section tête{
//do
} Pour éviter les exceptions dues à des sections manquantes, vous pouvez donner un second argument à RenderSection() : @RenderSection (« Sous-menu », faux) ou @if (IsSectionDefined (« sous-menu »))
{ @RenderSection (« Sous-menu », faux)
} sinon
{ <p>La section sous-menu n’est pas définie !</p>
}
4.@Html.Partial Partial crée sa propre instance de TextWriter à chaque fois et met le contenu en mémoire en mémoire. Enfin, envoyez toutes les sorties de l’auteur vers un objet MvcString Le plus souvent, nous utilisons @{ html.RenderPartial(« details ») ; au lieu de @Html. Partiel La différence entre RenderPage() et RenderPartial(). Les appels RenderPage() ne peuvent l’utiliser que pour passer des données au-delà de la situation. RenderPartial() peut utiliser des données de vue, des modèles et d’autres données. La différence entre Html.RenderPartial et Html.RenderAction Html.RenderPartial convient aux UserControls répétés, et doit seulement être utilisé pour afficher du contenu via des modèles, ou pour les UserControls pour les publicités. Html.RenderAction appellera d’abord la méthode Action du Contrôleur ; si ce UserControl doit obtenir des données de la base de données pour être affichée (lire la base via l’Action), cette méthode est plus adaptée pour cette période. 5.Html.Partial(« MyView ») Retournez un flux de tentative sous forme de chaîne MvcHtmlString, en suivant les règles de routage standard. Affiche la vue « MyView » en MvcHtmlString. Il suit les règles standard pour la recherche de vues (c’est-à-dire vérifier le répertoire actuel, puis vérifier le répertoire partagé). Html.RenderPartial (« MyView »)
À l’instar de Html.Partial(), la différence est qu’il est tapé directement dans la page sans mise en cache. Fait la même chose que Html.Partial(), sauf qu’il écrit directement sa sortie dans le flux de réponse. C’est plus efficace, car le contenu de la vue n’est pas mis en mémoire tampon en mémoire. Cependant, comme la méthode ne retourne aucune sortie, @Html.RenderPartial (« MyView ») ne fonctionnera pas. Vous devez plutôt envelopper l’appel dans un bloc de code : @{Html.RenderPartial(« MyView ») ; }. RenderPage(« MyView.cshtml »)
Retourne une vue spéciale avec des chemins, noms de fichiers, etc., et sort directement comme Heml.RenderPartial() sans mise en cache. Les variables du modèle peuvent être passées. Affiche la vue spécifiée (identifiée par le chemin et le nom du fichier plutôt que par le nom de la vue) directement dans le flux de réponse, comme Html.RenderPartial(). Vous pouvez fournir n’importe quel modèle à la vue en l’incluant comme second paramètre RenderPage(« MyView.cshtml »,MyModel)
Je préfère
@RenderPage (« _LayoutHeader.cshtml »)Terminé @{Html.RenderPartial(« _LayoutHeader ») ; }Uniquement parce que la syntaxe est plus facile et plus lisible. À part ça, il ne semble pas y avoir de différences de fonctionnalités.
|