Heim >Web-Frontend >CSS-Tutorial >Wie füge ich die Klasse „Aktiv' effizient zu ASP.NET MVC-Navigationslinks hinzu?

Wie füge ich die Klasse „Aktiv' effizient zu ASP.NET MVC-Navigationslinks hinzu?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-31 21:49:11204Durchsuche

How to Efficiently Add the

Hinzufügen der aktiven Klasse zu Html.ActionLink

In ASP.NET MVC ist es üblich, die „aktive“ Klasse für Navigationselemente festzulegen um die aktuell aktive Seite anzuzeigen. Das direkte Hinzufügen der Klasse zum Tag ist möglicherweise nicht der gewünschte Ansatz.

Überlegungen zu Bootstrap

Bei Bootstrap wird die aktive Klasse normalerweise auf das <li>-Tag angewendet. Element anstelle des Etikett. Daher sollten Sie Ihren Code so ändern, dass er wie folgt aussieht:

<ul>

Dynamische Klassenzuweisung

Um den Prozess der Zuweisung der aktiven Klasse basierend auf der aktuellen Seite zu automatisieren, Sie können den folgenden Ansatz verwenden:

<ul>

Durch die Verwendung der ViewContext.RouteData.Values-Eigenschaft können Sie dies automatisch tun Bestimmen Sie die aktuelle Aktion und den Controller. Mit dem ternären Operator können Sie die aktive Klasse basierend auf der ausgeführten Aktion bedingt hinzufügen.

HtmlHelper-Erweiterung

Für eine sauberere und elegantere Lösung können Sie eine erstellen HtmlHelper-Erweiterungsmethode:

public static string IsSelected(this HtmlHelper html, string controllers = "", string actions = "", string cssClass = "selected")
{
  // Get the current action and controller
  string currentAction = html.ViewContext.RouteData.Values["action"].ToString();
  string currentController = html.ViewContext.RouteData.Values["controller"].ToString();

  // Create arrays of accepted actions and controllers
  string[] acceptedActions = actions.Trim().Split(',').Distinct().ToArray();
  string[] acceptedControllers = controllers.Trim().Split(',').Distinct().ToArray();

  // Check if the current action and controller match any of the accepted values
  return acceptedActions.Contains(currentAction) &amp;&amp; acceptedControllers.Contains(currentController) ?
    cssClass : string.Empty;
}

Mit dieser Erweiterungsmethode können Sie die aktive Klasse einfach wie folgt zuweisen Syntax:

<li>

Das obige ist der detaillierte Inhalt vonWie füge ich die Klasse „Aktiv' effizient zu ASP.NET MVC-Navigationslinks hinzu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn