通过浏览器栏</int>将通用List <int>传递给Web Api方法

时间:2013-04-16 23:08:25

标签: asp.net-web-api asp.net-mvc-routing restful-url

很抱歉,如果您认为这与此one重复,但它无法解决我的问题。

我有一个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,40的部分列表。感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

执行此操作的一种方法是删除路由中的{depts},然后在查询字符串参数中传递depts

URL:

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"
            });
}