Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 13486|Répondre: 0

[ASP.NET] @RenderBody、@RenderSection、@RenderPage、Html.RenderPartial、Html.RenderActi...

[Copié le lien]
Publié sur 19/07/2015 23:37:53 | | |
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.





Précédent:ASP.NET---- implémenter un bouton de clic ou un lien pour faire apparaître la boîte de dialogue de connexion
Prochain:Réglez la CheckBoxList pour ne pas enrouler la ligne
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com