这是被调用的控制器,但value总是以null结尾:
public void Post([FromBody]string value) {
}
这就是它的调用方式:
function () {
var data = {
'sku': $('#radioProduct').val(),
'qty': $('#productQty').val()
}
return fetch('/api/Default', {
method: 'post',
headers: {
'content-type': 'application/json'
},
body: JSON.stringify(data)
}).then(function (res) {
return res.json();
}).then(function (data) {
return data.orderID; // Use the same key name for order ID on the client and server
});
}
});
我在这里做错什么吗?该API确实会被调用,但主体为空。
这是null
因为您要发布以下JSON:
{
"sku": "sku's value",
"qty": 1
}
但您的控制器期望一个string
。实际上,您已将指定application/json
为Content-Type
,而您需要做的是创建一个类,该类对您希望收到的两个值进行建模:
public class ProductInfo
{
public string Sku { get; set; }
public int Qty { get; set; }
}
否则,模型绑定器将不知道如何将值sku
与qty
任何事物关联,因此您得到null
。
最后,将操作更改为:
public void Post([FromBody]ProductInfo productInfo)
模型绑定完全由约定处理,这意味着将属性名称或原始值与您发送给控制器的JSON或其他数据相关联。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句