активный пункт меню - главная страница asp.net mvc3

Я просматривал все, пытаясь найти подходящее решение для назначения класса «активный / текущий» элементам меню на главной странице. Строка разделена посередине относительно того, следует ли делать эту клиентскую или серверную сторону.

По правде говоря, я новичок в JavaScript и MVC, поэтому у меня нет мнения. Я бы предпочел сделать это «самым чистым» и наиболее подходящим способом.

У меня есть следующий код jQuery для назначения «активного» класса элементу

  • ... единственная проблема - это «индекс» или элементу меню вида по умолчанию всегда будет назначен активный класс, потому что URL-адрес всегда является подстрокой других ссылок меню:

    (default) index = localhost/
    link 1 = localhost/home/link1
    link 2 = localhost/home/link1
    
    $(function () {
     var str = location.href.toLowerCase();
      $('#nav ul li a').each(function() {
       if (str.indexOf(this.href.toLowerCase()) > -1) {
        $(this).parent().attr("class","active"); //hightlight parent tab
       }
    });
    

    Есть ли лучший способ сделать это, ребята? Может ли кто-нибудь хотя бы помочь мне сделать клиентскую версию пуленепробиваемой? Чтобы ссылка "индекс" или ссылка по умолчанию всегда была "активной"? Есть ли способ присвоить методу индекса поддельное расширение? например, вместо базового URL-адреса это будет localhost / home / dashboard , чтобы это не было подстрокой каждой ссылки?

    По правде говоря, я действительно не следую методам этого на стороне сервера, вот почему я пытаюсь сделать это на стороне клиента с помощью jQuery ... любая помощь будет оценена.

  • 65
    задан tereško 30 June 2012 в 00:20
    поделиться