CSS-Klasse wird nicht auf eine Hilfserweiterung mit einer Teilansicht angewendet.

Ich versuche, eine Liste von Kategorien mit einer Teilansicht anzuzeigen. Die Klasse "ausgewählt" sollte bei Auswahl auf eine bestimmte Kategorie angewendet werden. Die Klasse wird jedoch nicht angewendet, wenn die Liste als Teilansicht zurückgegeben wird.

_Layout-Seite:

<nav>

    @Html.Action("_getCategories", "Home")

</nav>

Action im Home-Controller:

public ActionResult _getCategories()
    {
        var Categories = repository.getCategories();
        return PartialView(Categories);
    }

Helper Erweiterung

public static MvcHtmlString MenuLink(this HtmlHelper helper, string text, string actionName, string controllerName)
    {
        string currentAction = helper.ViewContext.RouteData.GetRequiredString("action");
        string currentController = helper.ViewContext.RouteData.GetRequiredString("controller");
        if (actionName.Equals(currentAction) & controllerName.Equals(currentController))
        {
            return helper.ActionLink(text, actionName, controllerName, null, new { @class = "selected" });
        }
        return helper.ActionLink(text, actionName, controllerName);
    }

Teilansicht

@using Project1.Context

@foreach (var c in Model)
{
    //Display categories in Model
}
<li>@Html.MenuLink("Home", "Index", "Home")</li>
<li>@Html.MenuLink("About", "About", "Home")</li>
<li>@Html.MenuLink("Contact", "Contact", "Home")</li>

Antworten auf die Frage(2)

Ihre Antwort auf die Frage