2009-06-06 2 views
0

ich eine Masterseite haben, die eine generische ein Menü, das wie folgt aussieht:Master Pages .. und eine CSS-Klassen an den Körper Element Anwendung

<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> 

ich eine CSS-Klasse auf den Körper anwenden möchten Element, das in der Masterpage definiert ist, damit ich den Menüpunkt hervorheben kann, der die Seite darstellt, die der Benutzer gerade betrachtet.

Wie würdest du vorschlagen, dass ich das tue?

Da ich asp.net MVC ich konnte Hinzufügen eines „Abschnitt“ Eigenschaft meiner BaseViewModel bin mit der die Masterpage, welche CSS-Klasse gelten für das Körperelement zu bestimmen, verwenden könnte.

Allerdings würde ich lieber in der Lage sein, in den Ansichten anzugeben, welchen Abschnitt sie vertreten, da es einfacher sein könnte, imo zu pflegen.

Irgendwelche Vorschläge?

Antwort

0

Ich würde das Menü in ein Benutzersteuerelement legen, auf jeder Seite würde ich das Benutzersteuerelement mit einem Modell rendern, das das ausgewählte Element darstellt. Das Benutzersteuerelement rendert das Menü entsprechend, indem es das ihm übergebene Modell betrachtet.

+0

Im Wesentlichen ist Ihr Vorschlag der gleiche wie meine ursprünglichen Gedanken - abgesehen von der Tatsache, dass ich nicht wirklich die Idee mag, ein Menü Usercontrol in jede Seite zu platzieren, die ich erstelle. Id bevorzugen es, es einmal in der Masterpage anzugeben. – iasksillyquestions