您好我正试图以这种方式向web api方法发布一个objectos列表:
var uri = "http://localhost:" + port + "/api/Account";
$.ajax({
dateType: "json",
method: "POST",
url: uri,
data: JSON.stringify(schedule),
success: function (result) {
alert(result);
},
error: function () {
alert("mal")
}
})
我的网络API方法如下:
public IHttpActionResult createSchedule([FromBody]List<Schedule> schedule)
{
return Ok(schedule.Capacity);
}
问题是返回0而不是列表中的对象数。我认为这是因为列表是空的。我做得怎么样?我将有关设置数据的内容读到date: {"": schedule}
,但它没有用。它抛出了一个空引用异常。
答案 0 :(得分:2)
您正确传递数据,但您需要指明请求的内容类型是JSON(dataType
中的$.ajax
选项告诉jQuery 期待什么响应)。将contentType
参数添加到ajax调用,它应该可以工作:
var uri = "http://localhost:" + port + "/api/Account";
var schedule = [{}, {}, {}];
$.ajax({
dateType: "json",
contentType: "application/json",
method: "POST",
url: uri,
data: JSON.stringify(schedule),
success: function (result) {
alert(result);
},
error: function () {
alert("mal")
}
})
答案 1 :(得分:0)
webapi方法将查找schedule
对象
所以请将data: schedule,
更改为data: { schedule: schedule },
答案 2 :(得分:0)
我认为错误是web api方法,因为我正在使用postman(chrome)进行测试,并且当我尝试发送这个json时我得到null引用异常:
var schedule = [{day: "Lunes", hour: "9-11", id_flat: 1},{day: "Martes", hour: "15-16", id_flat: 1}]