Я пытаюсь динамически добавить класс "active" к элементу nav в проекте ASP. NET MVC 5. После просмотра некоторых ответов я получил это.
C#:
namespace System.Web.Mvc
{
public static class MyExtensions
{
public static string IsLinkActive(this UrlHelper url, string action, string controller)
{
string currentController = url.RequestContext.RouteData.Values["controller"].ToString();
string currentAction = url.RequestContext.RouteData.Values["action"].ToString();
if (currentController == controller && currentAction == action)
{
return "active";
}
return "";
}
}
}
Это пример кода html:
<li class="@Url.IsLinkActive(item.Method, item.Controller)"></li>
проблема в том, что, поскольку меню, в котором я использую IsLinkActive, находится в частичном представлении, вызванном из макета, переменные currentController и currentAction всегда возвращают частичный маршрут представления.
Идея состоит в том, что если Метод item и контроллер такие же, как и на реальной странице, элемент 'li' должен получить активный класс.
Как получить реальные значения URL, а не частичные значения представления?
Если вам нужна дополнительная информация, дайте мне знать.