Conditionnellement l'affichage des vues partielles fondées sur la page active
Je suis en train de me familiariser avec ASP.net MVC5 et je suis le portage sur un site web existant.
J'ai défini un défaut partagé vue de mise en page qui contient plusieurs partiels pour des choses comme l'en-tête, de navigation, footer, etc...
La seule différence entre ma page d'accueil, et d'autres pages à l'aide de cette mise en page est la page d'accueil a un curseur et un peu d'autres caractéristiques uniques. Autre que la mise en page est identique.
De ce fait, je ne pense pas que cela justifie la création de deux points de vue différents et le réglage de la mise en page de la page d'accueil d'utiliser un point de vue, et toutes les autres pages du site pour en utiliser un autre, quand la plupart des modèle est identique.
J'ai créé un partiel nommé _HomeContentPartial
contenant le contenu unique pour la page d'accueil.
Quelle est la meilleure façon de Rasoir pour conditionnellement inclure ce seulement partielle si ma maison (action index sur ma maison controller) est la page en cours?
OriginalL'auteur on3al | 2014-06-17
Vous devez vous connecter pour publier un commentaire.
Il suffit d'ajouter un
ViewBag.IsHome = true;
à lahome
contrôleur,index
méthode d'action du contrôleur.Puis l'ajouter à la
_layout.chtml
vue:Une autre option:
Comme vous pouvez spécifier autant de rendre les régions que vous le souhaitez dans une mise en page, il suffit de les mettre dans des espaces réservés pour les pièces en option et utiliser
@RenderSection
avec lerequired
indicateur a la valeurfalse
de sorte qu'il n'a pas l'esprit si elle est manquante.par exemple dans votre _layout.cshtml
@RenderSection("extraheader", false)
alors dans une vue en option, des pièces à insérer dans cette position:
La méthode que vous utilisez dépend de comment vous voulez réutiliser des composants. Vous pouvez heureusement rendu d'une vue partielle à l'intérieur d'un
@section
afin de permettre leur réutilisation dans de nombreux points de vue:par exemple
ou même en utilisant un autre contrôleur de l'action (meilleure encapsulation, donc ma préférence):
par exemple
OriginalL'auteur Gone Coding