需要您的专业知识 我正在使用JS&Asp.net Core Web API。 我试图将JSON数组发布到我的API,但是每次需要帮助来了解我缺少的内容时,我都无法通过Web api post方法获取数据,该方法为NULL。
下面是JS代码
function Trails(){
var A = [];
var B = [];
var MyData = [];
for(var i = 0;i <= 2;i++){
var _A = {
"ID" : i,
"_A" : "A"+i
};
A.push(_A);
}
for(var i = 0;i <= 2;i++){
var _B = {
"ID" : i,
"_B" : "B"+i
};
B.push(_B);
}
for(var i = 0;i <= 2;i++){
MyData.push({
"MyDataName" : "CJ"+i,
"A" : A,
"B" : B,
});
}
$.ajax({
crossDomain: true,
cache: false,
type: "POST",
url: "https://localhost:44359/api/values/",
contentType: "application/json",
data :JSON.stringify({MyData}),
dataType: "json",
success: function (data) {
alert(data);
}, //End of AJAX Success function
failure: function (data) {
alert(data.responseText);
console.log(data);
}, //End of AJAX failure function
error: function (data) {
alert(data.responseText);
console.log(data);
} //End of AJAX error function
});
}
C#类
public class A
{
public int ID { get; set; }
public string _A { get; set; }
}
public class B
{
public int ID { get; set; }
public string _B { get; set; }
}
public class MyData
{
public string MyDataName { get; set; }
public List<A> A { get; set; }
public List<B> B { get; set; }
}
Web API发布方法
// POST api/values
[HttpPost]
public void Post([FromBody] List<MyData> MyData)
{
}
MyData始终为null。请帮助
答案 0 :(得分:1)
您使用的是:JSON.stringify({MyData})
而不是JSON.stringify(MyData)
。它以JSON的形式发送到服务器,该字段包含MyData字段“ MyData”,而不仅仅是MyData数组。