2009-06-06 7 views
0

J'ai une page principale qui a un menu générique qui ressemble à ceci:Master Pages .. et appliquer une classe CSS à l'élément du corps

<div id="menu"> 
<ul class="sf-menu"> 
    <li class="menuHome"><a href="/home">Home</a></li> 
    <li class="menuBandsAZ"><a href="/artist/list">Bands</a></li> 
    <li class="menuGigs"><a href="/gig/list">Gigs</a></li> 
    </ul> 
</div> 
<asp:ContentPlaceHolder ID="ListingPlaceHolder" runat="server"></asp:ContentPlaceHolder> 

Je veux appliquer une classe CSS au corps élément défini dans la page maître afin que je puisse mettre en évidence l'élément de menu qui représente la page que l'utilisateur visualise.

Comment voulez-vous que je fasse ça?

Depuis que je suis en utilisant asp.net MVC Je pourrait ajouter une propriété « section » à mes BaseViewModel que le Masterpage pourrait utiliser pour déterminer la classe à appliquer à css l'élément du corps.

Cependant, je préférerais pouvoir spécifier dans les vues quelle section ils représentent, car il peut être plus facile de conserver imo.

Des suggestions?

Répondre

0

Je mettrais le menu dans un contrôle utilisateur, dans chaque page, je rendrais l'utilisateur contrôle avec un modèle représentant l'élément sélectionné. Le contrôle utilisateur rendra le menu de manière appropriée en regardant le modèle qui lui est transmis.

+0

Essentiellement votre suggestion est la même que mes pensées initiales - en dehors du fait que je n'aime pas vraiment l'idée de placer un menu usercontrol dans chaque page que je crée. Je préfère l'indiquer une fois dans la page Master. – iasksillyquestions

Questions connexes