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.