最新要闻

广告

手机

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

家电

ASP.NET Post, FromBody 接参总是null 空值. Web api 前端传递是有值的,怎么回事?

来源:博客园


(资料图片仅供参考)

遇到一个常见错误,前端Post传递data: { array: [1,2,3] },但是API接收的一直是null

API 方法

postApi ([FromBody] int[] array, [FromUri] int num)

Debug过程

  1. F12检查数据传递结构,没有问题
  1. 尝试排除法,只保留[FormBody]。postApi ([FromBody] int[] array)还是不行。
  2. 根据网络查询,添加一个请求头。后台接收不再是null,变成了[]。但是数据还是不过来。然后就没办法了,反复尝试,人呆了。
headers: {  "Content-Type": "application/x-www-form-urlencoded"},
  1. 然后就和同事讨论,参考项目其他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]

关键词: