Как установить активный класс меню Bootstrap с помощью ASP.NET Core?
Вступление
Последние пару лет я использую Bootstrap для определения макета своих веб-сайтов. Это значительно упрощает вашу жизнь при создании адаптивных веб-сайтов, что в настоящее время является обязательным. Одна из функций, предлагаемых бутстрапом, - это возможность настраивать внешний вид ссылки, когда вы присваиваете ей класс active
.
Многие интерфейсные фреймворки - подумайте о VueJS, React и Angular - могут добавлять этот класс автоматически. Проблема в том, что шаблон MVC не добавляет активный класс в тег li
или a
в меню по умолчанию. Поэтому нам нужно найти способ самим добавить class="active"
к тегу, чтобы указать активный пункт меню.
Добавление активного класса
Добавление активного класса в приложение ASP.NET Core может показаться проще, чем вы думаете. Для этого нам понадобится метод расширения @HtmlHelper
:
Этот метод позволяет нам определять несколько действий и контроллеров - в любой другой комбинации - которые добавляют определенный класс к нашему выбранному элементу. Теперь нам просто нужно использовать его в наших представлениях.
Если вы хотите добавить активный класс в элемент li
, когда вы находитесь в контроллере «Home» в действии «Index», вам потребуется следующий код:
<li class="nav-item @Html.ActiveClass("Home", "Index")"> <a class="nav-link" href="/Home/Index">Home</a> </li>
Но предположим, что вы хотите вызвать класс selected
, когда вы находитесь в действии «Индекс» контроллера «Домой» или «Контакт». Мы можем сделать это с помощью следующего фрагмента кода:
<li class="nav-item @Html.ActiveClass("Home,Contact", "Index", "selected")"> <a class="nav-link" href="/Home/Index">Home</a> </li>
ПРИМЕЧАНИЕ. Я настоятельно рекомендую добавить @using Your.Extension.NameSpace
в ваш _ViewImports.cshtml
файл, чтобы вам не приходилось добавлять его в любое другое представление.
Заключение
Применение активного класса на панели навигации может оказаться не таким сложным, как кажется. Используя метод расширения, мы можем добиться этого с помощью нескольких простых строк. Надеюсь, это поможет вам реализовать более интерактивную панель навигации!
Удачного кодирования 😊
Если вы также хотите, чтобы вам было проще создавать ссылки, взгляните на эту историю.