gpt4 book ai didi

c# - 使用 List 参数将 Javascript 数组发送到 Web API 方法时出现问题

转载 作者:行者123 更新时间:2023-11-28 20:10:52 25 4
gpt4 key购买 nike

我正在使用 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 等,但不起作用。

最佳答案

您无法在 Controller 方法上发布两个参数。标准媒体类型格式化程序将格式化为单个对象

您的选择是

创建一个类,例如

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)

关于c# - 使用 List<T> 参数将 Javascript 数组发送到 Web API 方法时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19932972/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com