我目前正在使用.NET 4.5 MVC 4 Web应用程序。 我有以下路线:
routes.MapRoute(
name: "Default",
url: "api/",
defaults: new { controller = "Response", action = "ReturnAllStations" }
);
routes.MapRoute(
name: "ID",
url: "api/{id}",
defaults: new { controller = "Response", action = "ReturnStuffA", id = UrlParameter.Optional }
);
现在,当我输入网址http://localhost:55302/api/
时,一切正常。但是,当我输入这样的URL:http://localhost:55302/api/SampleId1234
时,我收到以下错误“未找到与名为'Sample1234'的控制器匹配的类型。”
为什么它会尝试获取名为Sample1234的控制器而不是defautlt控制器并使用sample1234作为参数?
答案 0 :(得分:1)
您的默认路线应该是最后的。 Route config将从上到下查找配置,当找到匹配时,立即返回调用该操作。
在您的情况下,始终调用第一个配置,因为它与api/
配置匹配。