Url Amigável Asp.NET MVC

12/04/2017

0

Estou com uma duvida sobre urls amigáveis, provavelmente é algo simples, se alguém puder me ajudar,

Quando faço uma rota para View Contact do controller Home:
localhost/Home/Contact


routes.MapRoute(
name: "contato",
url: "contato",
defaults: new { controller = "Home", action = "Contact" }
);

Tudo ok, consigo acessar pela a url: localhost/contato, porem para Área que criei para pagina de login não funcionou dessa maneira.
localhost/Admin/Adm/Index ->acessa ok
mas pela rota não acessa


routes.MapRoute(
name: "Login",
url: "login",
defaults: new { controller = "Admin/Adm", action = "Index" }
);

Qual seria o caminho para acessar o controller Adm dentro da Área Admin ? como ficaria essa rota ?
Luis Silva

Luis Silva

Responder

Posts

09/05/2017

Pablo Domingues

Dentro da pasta Areas você deve ter a pasta Admin e dentro da pasta Admin a estrutura de pasta Controllers, Models, Views...
Muito provavelmente você irá encontrar o AdminAreaRegistration.cs dentro da pasta Areas /Admin e nele deverá ser feito o registro de rotas desta área. Não sendo necessário mapear cada área dentro de RouteConfig.cs.

AdminAreaRegistration.cs
public class AdminAreaRegistration: AreaRegistration 
    {
        public override string AreaName 
        {
            get 
            {
                return "Admin";
            }
        }

        public override void RegisterArea(AreaRegistrationContext context) 
        {
            context.MapRoute(
                "Admin_default",
                "Admin///",
                new { action = "Index", id = UrlParameter.Optional }
            );
        }
    }


RouteConfig.cs

public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute(".axd/{*pathInfo}");

            routes.MapRoute(
                name: "Default",
                url: "//",
                defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
            );
        }


No seu global.asax adicione:
AreaRegistration.RegisterAllAreas();
RouteConfig.RegisterRoutes(RouteTable.Routes);



Creio que atenda as suas necessidades. ;)
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar