6

I have the following:

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

and I'm trying to use this:

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

but these are coming up as null within the delete method - how do I send the data without putting it in the body (since this is a DELETE request)?

My routing has this:

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

2 Answers 2

13

Nevermind, I found this:

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

Couldn't find an answer on SO though so I'll leave it here.

Exerpt from the above linked page:

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

The Url will be http://mywebsite/api/mycontroller/findbymembers/?ids=1&ids=2&ids=3.

Sign up to request clarification or add additional context in comments.

Comments

0

if you are looking to have Uri like api/folder/[1,2,3], the same parameter binding example mentioned in the below post's answer can be used here too :

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

Note: You would need to change the following line to look for 'id' route variable rather than 'ids' as your route template here is 'api/folder/{id}'.

string idsAsString = actionContext.Request.GetRouteData().Values["id"].ToString(); 

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.