MVC3 e regravações

Estou escrevendo um aplicativo MVC3 que precisará usar a reescrita de URL na forma de http: // [server] / [City] - [State] / [some term] /.

Pelo que entendi, o MVC3 contém um mecanismo de roteamento que usa {controler} / {action} / {id}, definido no arquivo 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 (em um aplicativo não MVC), eu usaria algum tipo de reescrita de URL para decodificar um URL comohttp: //www.myserver.com/City-State/somesearch para parâmetros da string de consulta que se parecem com isso:http: //www.myserver.com/city=City&state=State&query=somesearc

Lembre-se de que essa solicitação seria proveniente dehttp: //www.myserver.com/Hom

Pode ser feito sem precisar especificar um controlador ... algo como isto:

routes.MapRoute(
            "Results",
            "{city}-{state}/{searchTerm}",
            new { controller = "Results", action = "Search" }
        );

... ou é realmente melhor ter o controlador listado?

Como você lida com isso em um ambiente MVC

Obrigado

questionAnswers(3)

yourAnswerToTheQuestion