2013-07-22 1 views
4

я следующее:Передача массива целых чисел в метод WebAPI в параметрах URI?

[HttpDelete] 
    public HttpResponseMessage DeleteFolder(int[] ids) 
    { 

, и я пытаюсь использовать это:

DELETE http://localhost:24144/api/folder/1483; 
DELETE http://localhost:24144/api/folder/[1483] 

, но они приходят в нуль в методе удаления - как я могу отправить данные без ввода это в теле (поскольку это запрос DELETE)?

Моя маршрутизация имеет это:

  routes.MapHttpRoute(
      name: "Folder", 
      routeTemplate: "api/folder/{id}", 
      defaults: new { controller = "Folder", id = RouteParameter.Optional } 
      ); 
+0

Также см. Http://stackoverflow.com/q/9981330/1405720 – mjohnsonengr

ответ

12

Nevermind, я нашел это:

http://blog.codelab.co.nz/2012/10/16/passing-arrays-into-asp-net-web-api-as-parameters/

Не удалось найти ответ на SO, хотя, так что я оставлю это здесь.

отрывок из приведенной выше связанной страницы:

[HttpGet()] 
public HttpResponseMessage FindByMembers([FromUri]Int32[] ids = null) 
{ 
    //Do stuff 
    return Request.CreateResponseMessage(HttpStatusCode.OK); 
} 

адреса URL будет http://mywebsite/api/mycontroller/findbymembers/?ids=1&ids=2&ids=3.

0

, если вы хотите иметь Ури как api/folder/[1,2,3], тот же параметр пример связывания упоминается в ответе НИЖЕ Сообщение может быть использовано здесь:

How to send an array via a URI using Attribute Routing in Web API?

Примечание: Вы должны были бы измените следующую строку, чтобы искать переменную маршрута «id», а не «идентификаторы», поскольку ваш шаблон маршрута здесь «api/folder/{id}».

string idsAsString = actionContext.Request.GetRouteData().Values["id"].ToString(); 
Смежные вопросы