Проблема в том, что каждый раз, когда вы переходите на другую страницу и обновляется навигационная панель, она всегда выбирает первый <li>
как активный. Используя jQuery, вы можете получить URL-адрес текущей страницы и посмотреть, какая из ссылок имеет этот адрес как href и добавить к нему активный класс. Удалите активную ссылку из первого элемента в раскрывающемся списке и используйте jQuery для добавления активного класса.
Markup
<ul class="nav navbar-nav">
<li><a href="index.html">Home</a></li>
<li id="aboutus">@Html.ActionLink("About Us", "aboutus","home")</li>
<li id="service">@Html.ActionLink("Services", "Services", "home")</li>
<li id="portfolio">@Html.ActionLink("Portfolio", "portfolio", "home")</li>
</ul>
JQuery
<script>
$(document).ready(function() {
var activeLink = location.pathname.substr(location.pathname.lastIndexOf('/'), location.pathname.length);
var parent = $('a[href$="' + activeLink + '"]').parent('li');
if (parent.closest('ul').hasClass('dropdown-menu')) {
parent.parents('.dropdown').addClass('active');
}
parent.parent('li').addClass('active');
});
</script>
Этот дополнительный <ul>
чеки используются, если Navbar имеют выпадающие с большим количеством ссылок внутри него.
использовать css вместо – depperm
Но как это сделать с помощью css? – santubangalore
Вы используете MVC, чтобы вы могли просто сказать в своих файлах 'cshtml', которые вы просматриваете, так как вы можете просто редактировать это представление. Где @depperm сказал об использовании CSS, просто посмотрите на мой jsfiddle: https://jsfiddle.net/o5v6at31/. Если вы не знаете о css, вы можете захотеть перейти на w3schools и посмотреть. Это вам понадобится, если вы используете бутстрап – Canvas