2013-04-16 2 views
0

Извините, если вы считаете, что это дубликат этого one, но это не решило мою проблему.Передача общего списка <int> в метод WebApi через панель браузера

У меня есть метод 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... 

, но я не смог найти способ передать список Depts как 10, 20, 40. Оцените любую помощь.

ответ

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

Я пробовал это, но, к сожалению, я не обновлял маршрутизацию, чтобы избавиться от {depts}. Спасибо за решение. Каковы альтернативы этому, если список слишком велик, скажем, 20-30 единиц или больше. Должен ли я идти за POST? –

+0

Да, для коллекции, большой, я предлагаю вам использовать POST. –

 Смежные вопросы

  • Нет связанных вопросов^_^