2013-08-30 2 views
3

Использование Visual Studio 2012.2, веб-приложение MVC4.ApiController Действие Невозможно проанализировать массив из querystring

Я прошу приходить к моему ApiController так:

http://localhost/api/keys?ids[]=1&ids[]=2&ids[]=3 

И я был под впечатлением, что следующий метод должен иметь возможность автоматически получать значения из идентификаторов [] массив:

public KeysModel Get(int[] ids){...} 

Однако, когда появляется запрос, подобный вышеприведенному, значение параметра «идентификаторы» равно null.

Я проверял, что HttpContext.Current.Request.QueryString имеет значения для идентификаторов, и я мог бы добраться до них таким образом, но это усложняет тестирование модулей.

Я также пробовал использовать List ids, [FromUri], [FromUri (Name = "ids []")], идентификаторы объектов и идентификаторы строк (интересное примечание ... когда ids является строковой переменной, значение в это "(Сборник)"

+1

Можете ли вы попробуйте изменить URI. чтобы быть таким и попытаться выяснить, работает: 'http: // localhost/api/keys? ids = 1 & ids = 2 & ids = 3', а также вы должны украсить параметр атрибутом' [FromUri] ', поскольку по умолчанию Web API рассматривает сложные типы, исходящие из тела –

+0

не могу изменить моче. он идет от ember таким образом, и цель состоит в том, чтобы не создавать пользовательский адаптер/сериализатор, а вместо этого сгибать волю ember. – PlayDeezGames

+0

Оказывается, я не смог правильно использовать [FromUri] (думал наверняка, что у меня ... должно быть, «слишком долго смотрел на него»). – PlayDeezGames

ответ

5

Оказывается:

public KeysModel Get([FromUri]int[] ids){...} 

был ответ после того, как все

Незнайка, что я делал раньше ...

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