item de menu ativo - página principal do asp.net mvc3

Estive pesquisando ao redor, tentando encontrar uma solução apropriada para atribuir a classe "ativa / atual" aos itens de menu na página principal. A linha é dividida no meio com relação à questão de fazer ou não esse cliente versus o servidor.

Sinceramente, sou novo no JavaScript e no MVC, por isso não tenho uma opinião. Eu preferiria fazer isso da maneira "mais limpa" e mais apropriada.

Eu tenho o seguinte código jQuery para atribuir a classe "ativa" ao item <li> ... o único problema é o "índice" ou o item de menu de exibição padrão sempre será atribuído à classe ativa, porque a URL é sempre uma substring dos outros links do menu:

(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
   }
});

Existe uma maneira melhor de fazer isso, pessoal? Alguém pelo menos me ajudaria a obter a versão do lado do cliente à prova de balas? Para que o "índice" ou o link padrão esteja sempre "ativo"? Existe uma maneira de atribuir uma extensão falsa ao método de índice? como, em vez de apenas o URL base, serialocalhost/home/dashboard para que não fosse uma substring de todos os links?

Sinceramente, eu realmente não sigo os métodos de fazer isso no lado do servidor, e é por isso que estou tentando fazer isso no lado do cliente com jQuery ... qualquer ajuda seria apreciada.

questionAnswers(5)

yourAnswerToTheQuestion