我的 MVC 路由有问题。
我正在尝试访问以下网址...“ http://localhost/api/Countries ”
我按以下顺序定义了以下路线...
RouteTable.Routes.MapHttpRoute(
name: "Continents",
routeTemplate: "api/countries/Continents",
defaults: new { controller = "countries", Action="Continents" }
);
RouteTable.Routes.MapHttpRoute(
name: "CountryRegions",
routeTemplate: "api/countries/Regions",
defaults: new { controller = "countries", Action = "CountryRegions" }
);
RouteTable.Routes.MapHttpRoute(
name: "CountryByCodeApi",
routeTemplate: "api/{controller}/{countryCode}",
defaults: new { controller="countries", countryCode = System.Web.Http.RouteParameter.Optional }
);
每当我转到所需的 URL 时,我都会收到错误“找到与请求匹配的多个操作”。如果 routeTemplate 属性的第三段是可选的,这将是有意义的,但我的理解是,通过不将其括在大括号中,它使其成为目标 URL 中的必需段。显然“http://localhost/api/countries”不包括“大陆”或“地区”,那么为什么它们会被识别为与请求匹配。
你知道的。这些路线看起来很简单,但是当你开始使用它时,它就像 RegEx 一样神秘!!!
有什么想法吗?