我使用以下调用将数据发送到 c# Web API Controller
。
$.ajax({
type: "POST",
url: "menuApi/menu/Cost",
data: JSON.stringify(order),
contentType: "application/json",
success: function (data) { window.alert('done')},
dataType: 'json'
});
服务器端的c# Controller
是这样的:
public string Cost([FromBody] string order)
{
var sOrder = Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(order);
return "";
}
Javascript 中的订单对象是一个具有嵌套数组和属性的复杂对象。我得到的数据为空。我不知道如何获取通过 ajax 调用发送的订单。
编辑:这是我的订单对象
var order = {
name:"",
id:"",
cost:"",
details: {
sItem:[{name:"",cost:""}],
dItem:[{name:"",cost:"", components:[{name:"",quantity:""}]}]
}
}
最佳答案
明白了,您需要将 ajax 请求作为表单数据发布,并使用空参数/表单字段名称,如下所示:
var order = {
name: "",
id: "",
cost: "",
details: {
sItem: [{ name: "", cost: "" }],
dItem: [{ name: "", cost: "", components: [{ name: "", quantity: "" }] }]
}
};
$.ajax({
type: "POST",
url: "api/Values",
data: {'': JSON.stringify(order)} ,
success: function (data) { window.alert('done') },
});
关于javascript - jQuery AJAX post 数据在 C# Web api Controller 中为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41114888/