none
Menu da Master page não funciona em outra pasta RRS feed

  • Pergunta

  • A herança do meu site é o seguinte:

    O que acontece é que quando navego para qualquer página dentro da pasta views, os menus da Master Page funcionam corretamente, mas quando acesso qualquer página de dentro da pasta "user" os menus não funcionam mais.

    Este acesso é controlado por javascript.
    código html do menu na Master Page:

    <nav>
    <input type="button" id="btnHome" class="btnMenu" onclick="Navega('default.aspx');"
                    value="Início" style="margin: -1px 0px 0px -1px" /><input type="button" id="btnPromoções"
                        class="btnMenu" onclick="Navega('/views/descontoAluno.aspx');" value="Promoções"
                        style="margin: -1px 0px 0px -1px" /><input type="button" id="btnLogin"
                                    class="btnMenu" onclick="Navega('/views/user/userLogin.aspx');" value="Login" style="margin: -1px 0px 0px -1px" />
    </nav>

    O javascript é este:

    function Navega(url) {
        if (url.indexOf("default.aspx") != -1) {
            if (document.title != "InMax - Início") {
                location.href = url;
            }
        }
        else if (url.indexOf("descontoAluno.aspx") != -1) {
            if (document.title != "InMax - Desconto") {
                location.href = url;
            }
        }
        else if (url.indexOf("cadCadastro.aspx") != -1) {
    
            if (document.title != "InMax - Cadastro") {
                location.href = url;
            }
        }
        else if (url.indexOf("contato.aspx") != -1) {
            if (document.title != "InMax - Contato") {
                location.href = url;
            }
        }
        else if (url.indexOf("userLogin.aspx") != -1) {
            if (document.title != "Inmax - Login") {
                location.href = url;
            }
        }
    }

    Ao acessar a página "Login", que fica dentro da pasta "user", o menu pára de funcionar e não redireciona ao clicar em cada item dele.

    terça-feira, 7 de janeiro de 2014 13:50

Respostas

  • bom...
    Primeiro gostaria de agraceder àqueles que responderam ao tópico e comentar que todas as sugestões passadas, eu já hivia feito. Muito obrigado mesmo. Mesmo colocando o til (~) ou o dois pontos (..) ou a barra(/) na frente do caminho, não consegui resolver.

    Mas como é um projeto um pouco urgente e depois de muito tentar, resolvi retirar a página "userLogin.aspx" de dentro da pasta "user" e colocá-la dentro da pasta "views" e com isso os menus voltaram funcionar.
    Deixarei a hierarquia assim, pelo menos até entregar o projeto, depois eu vejo se há necessidade de modificá-lo novamente.

    • Marcado como Resposta Oliveira Leal quarta-feira, 8 de janeiro de 2014 09:56
    quarta-feira, 8 de janeiro de 2014 09:56

Todas as Respostas

  • Imagem você:

    Se ta na sala da sua casa e vai pro quarto, só que as coisas suas estão na sala e ai você não consegue pegar! como fazer: volta para sala!

    Amigo se subiu uma pasta o seu menu também tem que saber que você saiu da raiz e foi para pasta user!

    Geralmente a gente colocar assim

    location.href = "/" + url, porque ele volta para raiz do seu menu

    e no menu login se tem que colocar assim

    location.href = "/user/" + url ... !

    Eu fiz assim pelo que eu vi, não sei ao certo se vai funcionar porque você não mandou para mim a master page a parte do menu e como você manipula ele!!!! e porque tem essa função ai ???

    mas, a lógica demostrado por mim é o que você não ta fazendo


    Fulvio Cezar Canducci Dias

    terça-feira, 7 de janeiro de 2014 14:29
  • Obrigado por responder.
    Se olhar no primeiro código que enviei:

    <nav>
    <input type="button" id="btnHome" class="btnMenu" onclick="Navega('default.aspx');"
                    value="Início" style="margin: -1px 0px 0px -1px" /><input type="button" id="btnPromoções"
                        class="btnMenu" onclick="Navega('/views/descontoAluno.aspx');" value="Promoções"
                        style="margin: -1px 0px 0px -1px" /><input type="button" id="btnLogin"
                                    class="btnMenu" onclick="Navega('/views/user/userLogin.aspx');" value="Login" style="margin: -1px 0px 0px -1px" />
    </nav>

    Este código acima é o código do menu da Master Page e ele chama o javascript assim: 

    onclick="Navega('/views/user/userLogin.aspx');"

    O acesso à página "userLogin.aspx", na pasta "user", é feito corretamente. O problema é que, quando a página "userLogin.aspx" é carregada, o menu não funciona mais.

    terça-feira, 7 de janeiro de 2014 15:01
  • Obrigado por responder.
    Se olhar no primeiro código que enviei:

    <nav>
    <input type="button" id="btnHome" class="btnMenu" onclick="Navega('default.aspx');"
                    value="Início" style="margin: -1px 0px 0px -1px" /><input type="button" id="btnPromoções"
                        class="btnMenu" onclick="Navega('/views/descontoAluno.aspx');" value="Promoções"
                        style="margin: -1px 0px 0px -1px" /><input type="button" id="btnLogin"
                                    class="btnMenu" onclick="Navega('/views/user/userLogin.aspx');" value="Login" style="margin: -1px 0px 0px -1px" />
    </nav>

    Este código acima é o código do menu da Master Page e ele chama o javascript assim: 

    onclick="Navega('/views/user/userLogin.aspx');"

    O acesso à página "userLogin.aspx", na pasta "user", é feito corretamente. O problema é que, quando a página "userLogin.aspx" é carregada, o menu não funciona mais.

    Tavendo aqui 

    <input type="button" id="btnHome" class="btnMenu" onclick="Navega('default.aspx');"

    deveria ser assim para que o menu não desse esse problema

    <input type="button" id="btnHome" class="btnMenu" onclick="Navega('/default.aspx');"

    Teste com essa barra por favor!!!


    Fulvio Cezar Canducci Dias

    terça-feira, 7 de janeiro de 2014 17:41
  • no aspx coloca o caminho físico com "~" na frente então fica assim

    "~/views/user/userlogin.aspx"


    Junior

    terça-feira, 7 de janeiro de 2014 19:12
  • no aspx coloca o caminho físico com "~" na frente então fica assim

    "~/views/user/userlogin.aspx"


    Junior

    é javascript!!! o que ele fez !!!

    Fulvio Cezar Canducci Dias

    terça-feira, 7 de janeiro de 2014 19:19
  • bom...
    Primeiro gostaria de agraceder àqueles que responderam ao tópico e comentar que todas as sugestões passadas, eu já hivia feito. Muito obrigado mesmo. Mesmo colocando o til (~) ou o dois pontos (..) ou a barra(/) na frente do caminho, não consegui resolver.

    Mas como é um projeto um pouco urgente e depois de muito tentar, resolvi retirar a página "userLogin.aspx" de dentro da pasta "user" e colocá-la dentro da pasta "views" e com isso os menus voltaram funcionar.
    Deixarei a hierarquia assim, pelo menos até entregar o projeto, depois eu vejo se há necessidade de modificá-lo novamente.

    • Marcado como Resposta Oliveira Leal quarta-feira, 8 de janeiro de 2014 09:56
    quarta-feira, 8 de janeiro de 2014 09:56