2014-04-26 83 views
0

這是我的api controller方法,用於獲取由用戶標識過濾的項目列表。在Web API上傳遞參數獲取方法

public IEnumerable<MyItemListItemDTO> Get(int userId) 

當調用從客戶端爲什麼不會/MyItems/Get/11工作和/MyItems/Get?userId=11做的方法是什麼?

回答

1

因爲在參數化URL上參數的名稱是id而不是userId。模型綁定器檢查參數的名稱以進行綁定。看看路線定義,你會看到。

我的意思是什麼,基本上是在RouteConfig.cs文件必須是默認路由如下:

routes.MapRoute(
      name: "Default", 
      url: "{controller}/{action}/{id}", 
      defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
     ); 

查找該URL controller/action/id最後一個參數的名稱是id。因此,在某些操作中,要接收這段URL,您必須匹配參數的名稱。