none
Problema com Rotas e Areas RRS feed

  • Pergunta

  • Boa tarde pessoal.

    Em minha aplicação criei uma área chamada Admin, esta área tem seu controller Home e sua view Index.

    para chamar esta área, coloquei um link no arquivo _LogOnPartial.cshtml da seguinte forma:

        <text>Bem-vindo <strong>@User.Identity.Name</strong>!
        [@Html.ActionLink("Painel de Controle", "Index", "Home", new { area = "Admin" }, null)]
        [@Html.ActionLink("Sair", "LogOff", "Account")]</text>

    Além disso, determinei no arquivo Global.asax o que seria a rota padrão para o restante da aplicação, desta forma:

            public static void RegisterRoutes(RouteCollection routes)
            {
                routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
    
                routes.MapRoute(
                    "Default", // Route name
                    "{controller}/{action}/{id}", // URL with parameters
                    new { controller = "Home", action = "Index", id = UrlParameter.Optional }, // Parameter defaults
                    new string[] { "Teste_WebSite.Controllers" } // Determinando a rota padrão aqui.
                );
    
            }

    Pois bem, ao acessar as views do controller padrão da aplicação, eu consigo navegar normalmente. O problema está quando acesso o link da nova area. No navegador fica desta maneira: http://localhost:55555/Admin/Home

    Depois de acessá-lo, quando vou acessar um link do controller padrão, ao invés de acessar esta pasta: http://localhost:55555/Home/Empresa, ele acessa esta: http://localhost:55555/Admin/Home/Empresa.

    Perceba que ele tenta acessar a pasta Empresa dentro da área Admin. Como posso resolver este problema?

    Desde já, muito obrigado.



    quarta-feira, 22 de agosto de 2012 15:11

Respostas

  • Boa tarde pessoal!

    Consegui resolver meu problema. =D

    Seguinte, basta adicionar à ActionLink o nome da área com uma string vazia. Assim:

    @Html.ActionLink("PRINCIPAL", "Index", "Home", new { area = string.Empty }, null)

    Valeu!!!



    quarta-feira, 22 de agosto de 2012 18:08