0

我正在使用 AngularJS $http 将数据发送到我的 Web API 服务器。我不知道为什么,但是我的 JS Array 没有进入服务器端,它变为 NULL,id 正常。

这就是我所拥有的:

客户端:

var dataArray = [
     {
        Prop1: "4674279"
     }
];

var id = 1;

$http({
    method : 'POST',
    url : 'http://localhost/Services/Controller/Method',
    auth : true,
    data: {
        'id' : id,
        'items' : dataArray 
    },
    headers: {
           "Content-Type": "application/json"
    }})
    .success(function (data, status, headers, config) {
         if (status === 200) {
              return data;
         }
     })
     .error(function (data, status, headers, config) {
           console.log('[ERROR] Status Code:' + status);
    });

服务器端:

public partial class Item
{
     public string Prop1 { get; set; }
}

public ReturnType Method(int id, List<Item> items)
{

}

我做错了什么?我试过 JSON.stringify 等等,但不会工作。

4

1 回答 1

3

您不能发布到控制器方法上的两个参数。标准的 mediatypeformatter 将格式化为单个对象

你的选择是

创建一个类,例如

public class ListItems {
  public int id {get;set;}
  public List<Items> Items {get;set;}
}

或者将 id 作为 url 的一部分,例如

http://localhost/Services/Controller/Method/:id

然后api方法看起来像

public ReturnType Method(int id, [FromBody]List<Item> items)
于 2013-11-12T15:26:34.040 回答