将JSON数组集合发布到Asp.net Core Web API

时间:2019-03-31 15:50:14

标签: javascript arrays json ajax asp.net-core-webapi

需要您的专业知识 我正在使用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。请帮助

1 个答案:

答案 0 :(得分:1)

您使用的是:JSON.stringify({MyData})而不是JSON.stringify(MyData)。它以JSON的形式发送到服务器,该字段包含MyData字段“ MyData”,而不仅仅是MyData数组。