He configurado un proyecto ASP.NET MVC, y todo funciona bien, pero tengo un problema con el enrutamiento. Mi Global.asax se ve así:El enrutamiento de URL ASP.NET MVC no me da URLs bonitas
public static void RegisterRoutes(RouteCollection routes) {
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = "" } // Parameter defaults
);
}
Así que, nada fuera de lo común. Mi problema es que cuando me enlace a un controlador/acción/params con un Html.ActionLink así:
<%= Html.ActionLink("My link", "SomeAction", "SomeController", new {param="someParam"})%>
debe generar (al menos lo que tiene sentido en mi cabeza) un enlace tales como: http://www.localhost/SomeController/SomeAction/someParam
.
Pero en cambio, genera un enlace como este: http://localhost/SomeController/SomeAction?param=someParam
Si i manualmente crear un vínculo que enlaza con el resultado esperado (SomeController/algunaAccion/someParam), entonces el controlador y la acción correcta se llaman, pero el parámetro definido en el método de acción siempre es nulo.
¿Alguna idea?
Hmmm, entonces esto significa que tengo que especificar una nueva regla de enrutamiento para cada nueva acción del controlador que requiere un conjunto diferente de parámetros? Esto daría como resultado una gran cantidad de reglas de enrutamiento para una aplicación empresarial. ¿No hay un enfoque más dinámico que eso? – Erik
Si esto fuera realmente dinámico, ¿no perdería la seguridad del tipo, la seguridad de los parámetros y la capacidad de prueba? – bzlm