2013-04-16 14 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。 –