No estoy seguro de lo que estás preguntando, así que si mi respuesta es incorrecta, es porque estoy adivinando lo que quieres.
Siempre puede agregar otra ruta a su Global.asax
. Esa es a menudo la forma más fácil de tratar casos 'fuera de la norma'.
Si desea obtener una lista de productos, que va a utilizar esta ruta:
routes.MapRoute(
"ProductList",
"{language}/{products}/{action}/",
new { controller = "Products", action = "List", language = "en" });
También puede sustituir los productos con la más genérica {controller}
si hay más de un tipo de entidad que se va a utilizar este ruta. Debe modificarlo para sus necesidades.
Por ejemplo, para hacer de este una ruta genérica que puede utilizar para obtener una lista de todos los productos:
routes.MapRoute(
"ProductList",
"{language}/{controller}/{action}/",
new { controller = "Products", action = "List", language = "en" });
Lo que esto hace es que crea una ruta (que se debe colocar siempre delante de su Default
ruta) que dice: "Por lo que sea que el usuario ingrese, dame el controlador y la acción que piden". (Tal como /en/Products/List
, o /en/Users/List
).
Para visitar ese controlador, solo necesita navegar a lo siguiente: yoursite.com/en/products/list
. También puede usar el HTMLActionLink
para visitar el controlador.
<%=Html.ActionLink("Product", "List", new { controller = Products }, null) %>
estoy escribiendo esto sin mi IDE abierta, por lo que el ActionLink
puede tener un error en ella.
¿Dónde se va a ubicar en? –
En una clase auxiliar que se extenderá UrlHelper – Gregoire
https://stackoverflow.com/questions/8830052/how-do-i-get-the-controller-and-action-names-from-the-referrer-uri –