MVC3 y reescribe
Estoy escribiendo una aplicación MVC3 que necesitará hacer uso de la reescritura de URL en forma de http: // [servidor] / [Ciudad] - [Estado] / [algún término] /.
Según tengo entendido, MVC3 contiene un motor de enrutamiento que utiliza {controler} / {action} / {id} que se define en el archivo Global.asax:
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 = UrlParameter.Optional } // Parameter defaults
);
}
Tradicionalmente (en una aplicación que no sea MVC), usaría un poco de sabor de reescritura de URL para decodificar una URL comohttp: //www.myserver.com/City-State/somesearch a parámetros de cadena de consulta que se parecen a esto:http: //www.myserver.com/city=City&state=State&query=somesearc
Tenga en cuenta que esta solicitud procederá dehttp: //www.myserver.com/Hom
Puede lograr esto sin tener que especificar un controlador ... algo como esto:
routes.MapRoute(
"Results",
"{city}-{state}/{searchTerm}",
new { controller = "Results", action = "Search" }
);
... ¿o es realmente mejor tener el controlador en la lista?
¿Cómo manejas esto en un entorno MVC3?
Gracias