Como posso criar um URL amigável em ASP.NET MVC?
-
03-07-2019 - |
Pergunta
Como faço para gerar URLs amigáveis ??dentro do MVC Framework ASP.NET? Por exemplo, nós temos uma URL parecida com esta:
http://site/catalogue/BrowseByStyleLevel/1
A 1 é Id do nível de estudo (superior, neste caso) para navegar, mas I'l como reformatar o URL da mesma forma StackOverflow faz isso.
Por exemplo, estes dois URLs irá levá-lo para o mesmo lugar:
https://stackoverflow.com/questions/119323/nested-for-loops -in-diferentes-línguas
EDIT:. A parte amigável do url é referido como um lesma
Solução
Existem dois passos para resolver este problema. Primeiro, crie uma nova rota ou alterar a rota padrão para aceitar um parâmetro adicional:
routes.MapRoute( "Default", // Route name
"{controller}/{action}/{id}/{ignoreThisBit}",
new { controller = "Home",
action = "Index",
id = "",
ignoreThisBit = ""} // Parameter defaults )
Agora você pode digitar o que você quer no final do seu URI eo aplicativo irá ignorá-lo.
Quando você processar os links, você precisa adicionar o texto "friendly":
<%= Html.ActionLink("Link text", "ActionName", "ControllerName",
new { id = 1234, ignoreThisBit="friendly-text-here" });
Outras dicas
Isto é como eu ter implementado o URL lesma sobre o meu pedido. Nota:. O padrão MapRoute não deve ser alterado e também as rotas são processados ??na ordem em que são adicionados à lista de rotas
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home",
action = "Index",
id = UrlParameter.Optional
} // Parameter defaults
);
routes.MapRoute("Place", "{controller}/{action}/{id}/{slug}", new { controller = "Place", action = "Details", id = UrlParameter.Optional,slug="" });
você tem uma rota no global.asax
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = ""}
// Parameter defaults )
Você pode definir seu próprio caminho como:
controlador é a classe cs dentro da pasta dos controladores.
Você pode definir seu id -. Com o nome que você escolher
o sistema vai passar o valor para o seu método ActionResult.
Você pode ler mais sobre este passo aqui: http: // www.asp.net/learn/mvc/tutorial-05-cs.aspx