В моем Global.asax определены следующие маршруты:
routes.MapRoute(name: "Home", url: "", defaults: new { controller = "Home", action = "Index" });
routes.MapRoute(name: "CityStateResults", url: "{city}-{state}/{searchTerm}", defaults: new { controller = "Results", action = "SearchCityState" });
routes.MapRoute(name: "CanadianProvinceResults", url: "CanadianProvinces/{state}/{searchTerm}", defaults: new { controller = "Results", action = "SearchCanadianProvinces" });
routes.MapRoute(name: "AllCanadianResults", url: "Canada/{searchTerm}", defaults: new { controller = "Results", action = "SearchAllOfCanada" });
Теперь я хочу написать функциональность отправки формы Razor, которая принимает два поля: txtSearchTerm и txtLocation.
Формат txtLocationвсегда будет состоять из [Город, Штат] или [Штат] или [Страна] и управляется базой данных, поэтому никакие другие значения, кроме указанных в БД, не будут приняты в этом поле.
Еслиместоположение [Город, штат], я хочу, чтобы форма перенаправлялась в / город-штат / searchTerm.Если местоположение соответствует состоянию, я хочу перенаправить в / CanadianProvinces / [state] / [searchterm].Если местоположение соответствует стране, я хочу перенаправить в /Canada/[searchterm].
У меня есть контроллер результатов с некоторыми настройками действий, но неясно, что касается первых шагов.Я уверен, что могу сделать это с помощью клиентского javascript и перенаправления, но я хотел бы знать стандартный способ сделать это с C #, Razor и MVC3.
Спасибо.