MVC3 / Razor表单提交与路线映射?

| 我在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的格式将始终由[City,State]或[State]或[Country]组成,并且由数据库驱动,因此该字段中将不接受除db中列出的值以外的其他值。 如果location是[City,State],我希望表单重定向到/ City-State / searchTerm。 如果位置匹配一个州,我想重定向到/ CanadianProvinces / [州] / [搜索项]。 如果位置与国家/地区匹配,我想重定向到/ Canada / [searchterm]。 我有一个带有一些操作设置的结果控制器,但不清楚第一步。我确定我可以使用一些客户端javascript和重定向来做到这一点,但是我想知道使用C#,Razor和MVC3的标准方式。 谢谢。     
已邀请:
        默认情况下,提交将发送到呈现页面的同一控制器。如果没有,您可以使用对特定控制器/方法的ajax调用作为目标方法。在路由表中放置复杂的路由规则确实很难维护。     

要回复问题请先登录注册