visual - asp.net mvc und css: Die Registerkarte "menu" bleibt bei der Auswahl hervorgehoben




visual studio 2017 (3)

Dieser Ansatz verwende ich in einem meiner Projekte und funktioniert ziemlich gut. Ich habe in jedem Controller ViewData ["Home"] = "activeTab" -Klasse zugewiesen und verwende in der Ansicht einen Standardwert für eine leere Zeichenfolge, wie unten gezeigt. Dadurch wird die Registerkarte aktiviert, wenn der Wert dieses viewData-Wörterbuchs verwendet wird. Ist einfach und sehr sauber.

Ihr Heim-Controller wird wie folgt aussehen:

        ViewData["Home"] = "activeTab";

        return View("Index");
    }

Die Ansicht sieht folgendermaßen aus:

<li class="<%= ((string)ViewData["Home"] ?? "") %>"><%= Html.ActionLink("Home", "Index", "Home")%></li>
<li class="<%= ((string)ViewData["About"] ?? "") %>"><%= Html.ActionLink("About", "About", "Home")%></li>

Gibt es einen besseren Weg, dies zu tun?

Ich habe eine HTML-Helfer-Erweiterung-Methode, die überprüft, ob das aktuelle Tab-Menü ist das ausgewählte und wählt dann .selected CSS-Klasse oder nicht. Ich stelle den Link html.IsSelected in jedes li

<li class="<%=Html.IsSelected(string a, string b)%>" >

Dabei steht a für den Tabnamen und b für ViewData.

Ist das sauber oder gibt es einen besseren Weg?


Ich habe versucht, dies ohne Erfolg zum Laufen zu bringen.

Wie sieht dein CSS aus? Meine ist unten.

.activeTab {Hintergrund: #FFFFFF; Farbe: # 000000; }

Ich benutze dies mit der Masterseite und nicht mit der Home-Ansicht, nicht sicher, ob das Auswirkungen hat.






css