【问题标题】:Posting array of integers to asp.net web api将整数数组发布到 asp.net web api
【发布时间】:2013-01-11 18:16:40
【问题描述】:

我有一个类似下面的类用于发布到 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 ] } 

【问题讨论】:

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


    【解决方案1】:

    您无需执行任何操作,开箱即用。

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

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

    【讨论】:

      【解决方案2】:

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

      Here 是一篇解释你必须做什么的博文。

      【讨论】:

      • 这是 MVC 的答案,这里的问题是 Web API
      • 问题中有ApiController。它也被标记为“asp.net-mvc”。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多