kkocabiyik
kkocabiyik

Reputation: 4426

Posting array of integers to asp.net web api

I have a class like below for posting to asp.net web api

public class PostData
{

    public int ID { get; set; }

    public int[] SelectedChoiceIDs { get; set; }

}

In my ApiController there is a method called send which gets PostData object as parameter.

public bool Send(PostData data)
{


}

The problem is whenever I trace the method Web API is not binding to the array of integers ,that is, SelectedChoiceIDs property. How can i force to bind the array of integers to "SelectedChoiceIDs" property?

The data i'm sending is like

{ "ID" : 3 , "SelectedChoiceIDs" : [ 3,4,5,6 ] } 

Upvotes: 3

Views: 5382

Answers (2)

Filip W
Filip W

Reputation: 27187

You don't need to do anything, this will work out of the box.

If you POST the exact object you provided:

{ "ID" : 3 , "SelectedChoiceIDs" : [ 3,4,5,6 ] } 

with Content-Type: application/json, the default model binder will automatically pick it up.

public class PostData
{

    public int ID { get; set; }

    public int[] SelectedChoiceIDs { get; set; }

}

public void DummyController : ApiController
{
    public void Post(PostData data)
    {
        //data here will be PostData with ID and an array of 4 integers
    }
}

Make sure you provide the Content-Type, and that you are indeed posting correct JSON, not for example:

{data: { "ID" : 3 , "SelectedChoiceIDs" : [ 3,4,5,6 ] } }

Upvotes: 9

semao
semao

Reputation: 1757

Possible dupplicate of ASP.NET MVC bind array in model

Here is blogpost explaining what you have to do.

Upvotes: -3

Related Questions