我試圖訪問以下網址:的Web API路線沒有映射到正確的URL
http://localhost:2727/api/SiteApi/Get?campaignId=2
下面是配置:
config.Routes.MapHttpRoute(
name: "DetailedApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
行動試圖映射到
public class SiteApiController : ApiController
{
...
public IEnumerable<Site> GetByCampaignId(int campaignId)
{
...
return sites;
}
}
這是當前返回「未找到任何操作」。但是,如果交換路由的順序,Url將工作。這意味着有一場比賽。
問題:我對路由的理解是,如果它與第一條路由不匹配,它將回退到第二條路由。我可以理解它是否映射到錯誤的路線,但不應該是指示類似「找不到匹配」的錯誤,無論我如何命令它們。
我錯過了什麼嗎?
感謝您的插件,我會檢查出 – Jack