将整数数组发布到asp.net web api

时间:2013-01-11 18:16:41

标签: c# asp.net asp.net-mvc asp.net-web-api

我有一个类似下面的类发布到asp.net web api

public class PostData
{

    public int ID { get; set; }

    public int[] SelectedChoiceIDs { get; set; }

}

在我的ApiController中有一个名为send的方法,它将PostData个对象作为参数。

public bool Send(PostData data)
{


}

问题是每当我跟踪方法时,Web API都没有绑定到整数数组,即SelectedChoiceIDs属性。我如何强制将整数数组绑定到“SelectedChoiceIDs”属性?

我发送的数据就像

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

2 个答案:

答案 0 :(得分:8)

你不需要做任何事情,这将开箱即用。

如果你发布了你提供的确切对象:

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

Content-Type: application/json,默认的模型绑定器会自动拾取它。

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

确保您提供Content-Type,并确实发布了正确的JSON,而不是例如:

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

答案 1 :(得分:-3)

可能重复 ASP.NET MVC bind array in model

Here是博客文章,解释了你必须做的事情。