Fórum Url Amigável Asp.NET MVC #580064
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 ?
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
Curtir tópico
+ 0
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
RouteConfig.cs
No seu global.asax adicione:
Creio que atenda as suas necessidades. ;)
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
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)