遇到一个常见错误,前端Post传递data: { array: [1,2,3] },但是API接收的一直是null
API 方法
postApi ([FromBody] int[] array, [FromUri] int num)
Debug过程
- F12检查数据传递结构,没有问题
- 尝试排除法,只保留[FormBody]。
postApi ([FromBody] int[] array)
还是不行。 - 根据网络查询,添加一个请求头。后台接收不再是
null
,变成了[]
。但是数据还是不过来。
然后就没办法了,反复尝试,人呆了。
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
},
- 然后就和同事讨论,参考项目其他api,发现只要是
[FormBody]
都会建立一个类模型;然后就解决了
public class postParams
{
public int[] array{ get; set; }
}
postApi ([FromBody] postParams params){
int[] array = params.array;
}
总结反思
Post传递payload(请求载荷)格式其实是这种
{
array: [1,2,3]
}
postApi ([FromBody] int[] array)
接收的格式是这种,这种格式其实是错误格式,所以不管怎么传都接收不到参数。所以需要创建一个类模型,才会包含{}
array: [1,2,3]
标签:Web,ASP,有值,int,FromBody,postApi,array,null,Post
From: https://www.cnblogs.com/yody/p/17306497.html