.net core FromBody 如何接收对象中的list?
[HttpPost("setdata")]
public async Task<IActionResult> SetData([FromBody]TestData model) {
}
//订单信息
public class TestData
{
public string Id { get; set; }
public string Name{ get; set; }
//多个商品
public List<Goods> GoodsList { get; set; }
}
//商品详细
public class Goods
{
public string Id { get; set; }
public string Name{ get; set; }
}
前台代码
form.on('submit(add)', function (obj) {
var oldData = table.cache["table-list"];
if (oldData == "") {
layer.msg("请添加商品", {icon: 2});
return false;
}
//商品列表
obj.field.GoodsList = oldData;
console.log(obj.field);
var loadSettings = {
"async": true,
"crossDomain": true,
"url": "测试地址",
"method": "POST",
"data": JSON.stringify(obj.field),
"headers": {
"Content-Type": "application/json",
"cache-control": "no-cache"
}
}
$.ajax(loadSettings).success(function (res) {
console.log(res);
layer.msg("提交成功");
return false;
});
});
如果GoodsList参数传递 FromBody 为null 如果注释掉 可以正常传递 ,
错误原因
FromBody 没有包含传递过来的全部数据
传递的参数类型不一致,也会导致无法接收,例如前台是string ,后台是int 类型不匹配是无法接收的