sto provando ad adattare questa classe:
codice:
public static class MenuHelper
{
public static MvcHtmlString MenuLink(this HtmlHelper htmlHelper, string linkText, string actionName, string controllerName, object routeValues = null, object htmlAttributes = null)
{
string currentAction = htmlHelper.ViewContext.RouteData.Values["action"] as string;
string currentController = htmlHelper.ViewContext.RouteData.Values["controller"] as string;
System.Diagnostics.Debug.WriteLine(currentAction);
System.Diagnostics.Debug.WriteLine(currentController);
var ulTag = new TagBuilder("li");
var link = htmlHelper.ActionLink(linkText, actionName, controllerName, routeValues, htmlAttributes);
if (actionName == currentAction && controllerName == currentController)
{
ulTag.AddCssClass("active");
}
ulTag.InnerHtml = link.ToHtmlString();
return MvcHtmlString.Create(ulTag.ToString());
}
}
l'unico problema è che mi da currentAction e currentController errati.
in currentAction mi da sempre MenuLeft, che è view condivisa da tutte le pagine (il menu di sinistra).
e in currentController mi da sempre Home, anche se ho cambiato controller.