style net mvc link imagen icono con como boton asp c# asp.net-mvc asp.net-mvc-routing friendly-url slug

c# - net - imagen en actionlink



¿Cómo puedo crear una URL amigable en ASP.NET MVC? (3)

Así es como he implementado la URL slug en mi aplicación. Nota: Maproute predeterminado no se debe cambiar y las rutas se procesan en el orden en que se agregan a la lista de rutas.

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="" });

¿Cómo puedo generar URLs amigables dentro de ASP.NET MVC Framework? Por ejemplo, tenemos una URL que se ve así:

http://site/catalogue/BrowseByStyleLevel/1

El 1 es Id del nivel de estudio (más alto en este caso) para explorar, pero me gustaría volver a formatear la URL de la misma manera que lo hace StackOverflow.

Por ejemplo, estas dos URL lo llevarán al mismo lugar:

https://stackoverflow.com/questions/119323/nested-for-loops-in-different-languages

https://stackoverflow.com/questions/119323/

EDITAR: La parte amiga de la url se conoce como una babosa .


Hay dos pasos para resolver este problema. Primero, crea una nueva ruta o cambia la ruta predeterminada para aceptar un parámetro adicional:

routes.MapRoute( "Default", // Route name "{controller}/{action}/{id}/{ignoreThisBit}", new { controller = "Home", action = "Index", id = "", ignoreThisBit = ""} // Parameter defaults )

Ahora puede escribir lo que quiera al final de su URI y la aplicación lo ignorará.

Cuando renderiza los enlaces, debe agregar el texto "amigable":

<%= Html.ActionLink("Link text", "ActionName", "ControllerName", new { id = 1234, ignoreThisBit="friendly-text-here" });


tienes una ruta en global.asax

routes.MapRoute( "Default", // Route name "{controller}/{action}/{id}", // URL with parameters new { controller = "Home", action = "Index", id = ""} // Parameter defaults )

puedes definir tu propia ruta como:

controlador es la clase cs dentro de la carpeta de controladores.

usted puede definir su identificación - con el nombre que elija.

el sistema pasará el valor a su método actionResult.

Puede leer más sobre este paso aquí: http://www.asp.net/learn/mvc/tutorial-05-cs.aspx