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

Respuestas a la pregunta(3)

Su respuesta a la pregunta