2013-04-16 33 views
0

對不起,如果你認爲這是與這one重複,但它不能解決我的問題。通過瀏覽器欄向WebApi方法傳遞泛型列表<int>

我有一個像的WebAPI方法:

[AcceptVerbs("GET")] 
[ActionName("Search")] 
public EmpResults GetSearchResults([FromUri] string country, [FromUri] List<int> depts) 
{ 
    EmpResults emps = m_controller.Search(country, depts); 
    return emps; 
} 

和路由表的樣子:

public static void RegisterRoutes(RouteCollection routes) 
{ 
    routes.MapHttpRoute("IMO Route", 
      "employees/search/{country}/{depts}", 
      new 
      { 
       controller = "Employee", 
       action = "Search" 
      }); 
} 

我不知道我怎麼可以測試通過簡單的瀏覽器欄這個的WebAPI?

我已經試過這取得了一些成功,它返回的員工列表部門10:

http://localhost/WebApi.Employee/employee/search/brazil/10?connString=Provider... 

,但我沒能找到一種方法來傳遞科指南的名單像10,20,感謝任何幫助。要做到這一點

回答

0

一種方法是去除{depts}在你的路線,並在查詢字符串參數,而不是通過depts

網址:

http://localhost/WebApi.Employee/employee/search/brazil?depts[]=10&depts[]=11&depts[]=12&connString=Provider...

路線:

public static void RegisterRoutes(RouteCollection routes) 
{ 
    routes.MapHttpRoute("IMO Route", 
      "employees/search/{country}", 
      new 
      { 
       controller = "Employee", 
       action = "Search" 
      }); 
} 
+0

我確實嘗試過,但是我的糟糕,我沒有更新路由來擺脫{depts}。感謝您的解決方案。如果列表太大,說20-30項或更多,那麼有什麼替代方案?我應該去POST嗎? –

+0

是啊,對於一個很大的集合,我建議你使用POST。 –