在Web Api 的Controller裏有兩個Actionweb
public string Get(string order, int skip, int take) { return "test"; }
[Route("GetButtons")] [HttpGet] public string GetButtons() { return "button"; }
這是個人請求地址: http://localhost:51855/Api/BlackCar/GetButo,c#
明顯個人Action名字寫錯了,但仍是可以匹配到 GetButtons(),通過屢次測試,只要不帶參數,不管Action的名字寫成什麼,甚至不寫Action都是能夠匹配到 GetButtons().可是帶上3個參數,就能夠匹配到Get(string order, int skip, int take).很讓我驚訝.這是問題,貌似Route特性不起做用.api
最後終於解決了:ide
通過同事的查看,說個人命名空間引錯了.測試
web api的應該是 using System.Web.Http;圖片
而我引用的是 using System.Web.Mvc;ip
事情的根源是,我新建Controller的時候選的是這個get
真是基礎薄弱+粗心啊.string
記錄一下 .... 呲牙.jpgit