3

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 ] } 

2 Answers 2

9

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 ] } }
Sign up to request clarification or add additional context in comments.

Comments

-3

Possible dupplicate of ASP.NET MVC bind array in model

Here is blogpost explaining what you have to do.

2 Comments

that's MVC answer, and the issue here is Web API
There is ApiController in the question. Also it is tagged with "asp.net-mvc".

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.