The value 'null' is not valid null传到后台变成“null”字符串问题

模型

        /// <summary>
        /// 纬度
        /// </summary>
        public System.Decimal? Latitude { get; set; }

        /// <summary>
        /// 经度
        /// </summary>
        public System.Decimal? Longitude { get; set; }

服务端代码

        [HttpPost]
        public async Task<BaseOutput<object>> AddUserAddress([FromForm] UserAddressAdd input)
        {
            return await _userAddressService.AddUserAddress(input);
        }

微信小程序及uniapp ,request请求后台时,使用"content-type": "application/x-www-form-urlencoded" 且 post 方式提交数据,则需要注意data数据属性为null传到后台为“null”字符串。
比如:
这么传的结果就是后端直接返回错误
The value 'null' is not valid for Latitude,,The value 'null' isnot valid for Longitude
解决方案

1、服务端【FromForm】修改为【FromBody】 前端使用application/json 首先 JSON.stringify(this.model) 过滤掉里面为undefined的属性

2、前台删除掉null的属性,过滤参数null和undefined

  if (data) {
  	for (var key in data) {
  		if (data[key] == null || typeof(data[key]) == "undefined") {
  			delete data[key];
  		}
  	}
  }
posted @ 2023-07-06 11:06  InMyHeart,OnlyYou  阅读(122)  评论(0)    收藏  举报