我正在使用AngularJS $ http将数据发送到我的Web API服务器。 我不知道为什么,但是我的JS数组不会进入服务器端,它会变为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等等,但不会工作。
答案 0 :(得分:3)
您无法在控制器方法上发布两个参数。标准mediatype格式化程序将格式化为单个对象
您的选择是
创建一个类,例如
public class ListItems {
public int id {get;set;}
public List<Items> Items {get;set;}
}
或者将id作为网址的一部分,例如
http://localhost/Services/Controller/Method/:id
然后api方法看起来像
public ReturnType Method(int id, [FromBody]List<Item> items)