这是我的ajax调用:
var myIds = ["A","B","C"]
$.ajax({
type: "POST",
url: /DoStuffAndThings?year=2018&name=test,
data: {myIds: myIds},
traditional: false
});
这是我的控制器动作:
[HttpPost]
public void DoStuffAndThings(int year, string name, [FromBody] List<string> myIds) {
// do stuff
}
年份和名称没有问题,但myIds始终为空。
我尝试过
data: {myIds: myIds}
和data: myIds
和data: {"": myIds}
,我尝试使用Ienumerable<string>
和List<string>
和string[]
而且我尝试过传统:对与错
答案 0 :(得分:1)
模型绑定程序无法解析发送数据,因为它不知道格式
使用JSON.stringify
以及相应的参数
var myIds = ["A","B","C"];
$.ajax({
type: "POST",
url: "/DoStuffAndThings?year=2018&name=test",
contentType: "application/json",
dataType: "json",
data:JSON.stringify(myIds),
traditional: false
});
然后,模型绑定程序应该能够识别请求正文中的字符串集合。
答案 1 :(得分:0)
将数据发送到Web服务器时,数据必须是字符串。 使用JSON.stringify()将JavaScript对象转换为字符串。
在输入数据之前,请使用JSON.stringify(myIds)
。
var myIds = ["A","B","C"]
$.ajax({
type: "POST",
contentType: "application/json",
dataType: 'json',
url: /DoStuffAndThings?year=2018&name=test,
data: JSON.stringify(myIds),
traditional: false
});