.net core 前端传递参数有值 后端接收到的数据却是null

举报
GoodTimeGGB 发表于 2023/10/31 11:09:57 2023/10/31
【摘要】 1、问题分析在做接口测试时,偶然出现了前端输出有值,但是后端断点调试时却出现接收参数总是为null的情况 2、解决办法前端打印log,看前端的每一个传值的数据类型,与后端请求参数类进行认真的一一比对小技巧:① 直接打印调用接口的传参值的数据类型,例如console.log(type of this.form.name) --stringconsole.log(type of this.fo...

1、问题分析

在做接口测试时,偶然出现了前端输出有值,但是后端断点调试时却出现接收参数总是为null的情况

2、解决办法

前端打印log,看前端的每一个传值的数据类型,与后端请求参数类进行认真的一一比对

小技巧:
① 直接打印调用接口的传参值的数据类型,例如
console.log(type of this.form.name) --string
console.log(type of this.form.age) --number
打印的数据类型与后端接口的参数类比对,查出不对应的类型
② 关于非必填的值,默认传值可能出现空字符串(’ ')、NaN值(Not a Number,非数;是计算机科学中> 数值数据类型的一类值,表示未定义或不可表示的值)
此时注意值的转换,比如时间戳的long类型,不传值给个0,传参的时候可以这样写:
this.form.time || 0 即可
默认为short、int、long等值传值为字符串的话,可以使用
1)Number():
全局方法Number()可把字符串转换为数字;
==》包含数字的字符串(比如 “3.14”)转换为数字(比如 3.14);
例如:Number(“3.14”) // 返回 3.14
==》空的字符串转换为 0;
例如:Number("") 或Number(" ") // 返回 0
==》其他字符串将转换为NaN。
例如:Number(“11 22”) // 返回 NaN
2)parseFloat():解析字符串并返回浮点数
例如:parseFloat(“10.33”) // 返回 10.33
3)parseInt():解析字符串并返回整数
例如:parseInt(“10”) // 返回 10

比如后端某个请求参数类型为string,前端传了null
再比如后端某个请求参数类型为long,前端传了’’
前端所有传值的类型包括可空字段的赋值必须和后端请求参数类型一一对应即可解决,找了好一会,特此做下记录以帮助也遇到此问题的同学。

3、参考链接

JavaScript 类型转换
JavaScript 全局属性/函数

以上就是.net core 前端传递参数有值 后端接收到的数据却是null的介绍,做此记录,如有帮助,欢迎点赞关注收藏!

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。