Я пишу приложение MVC3, которое должно будет использовать переписывание URL в форме http://[server]/[City]-[State]/[some term] /.
Насколько я понимаю, MVC3 содержит механизм маршрутизации, который использует {контроллер} / {action} / {id}, который определен в файле 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
);
}
Традиционно (в приложении, отличном от MVC), я бы использовал некоторую разновидность перезаписи URL для декодирования URL, напримеркак http://www.myserver.com/City-State/somesearch/ для параметров строки запроса, которые выглядят примерно так: http://www.myserver.com/city=City&state=State&query=somesearch
Имейте в виду, что этот запрос будет поступать с http://www.myserver.com/Home
Может ли этобыть выполненным без указания контроллера ... что-то вроде этого:
routes.MapRoute(
"Results",
"{city}-{state}/{searchTerm}",
new { controller = "Results", action = "Search" }
);
... или действительно лучше иметь контроллер в списке?
Как вы справляетесь с этим всреда MVC3?
Спасибо.