点击按钮调用getDetail(10)时id参数被设为0,求排查原因
问题原因及解决办法
1. JSON格式不规范导致参数绑定失败
你在AJAX请求里拼接的data字符串不符合JSON语法要求——JSON的键名必须用双引号包裹。当前代码生成的字符串是{id: 10},这种格式后端的JSON解析器无法正确识别,导致参数绑定失败,最终取int类型的默认值0。
修复方案二选一:
- 推荐:直接传递JSON对象,让jQuery自动处理格式转换,避免手动拼接出错:
data: { id: id }, - 修正字符串拼接格式,给键名加上双引号:
data: '{"id": ' + id + '}',
2. 后端参数接收配置问题
检查后端GetDetailContent接口的定义:
- 确认参数名称和前端传递的
id完全一致(部分模型绑定规则区分大小写,比如后端写Id而前端传id会导致绑定失败); - 如果后端使用
[FromBody]特性接收参数,必须确保前端传递的是合法JSON格式(对应上面的修复方案); - 确认参数类型匹配,比如后端是
int id,前端传递的是数字类型(当前代码没问题,但如果后端是其他类型可能导致转换失败)。
内容的提问来源于stack exchange,提问作者Mert
相关产品推荐
相关产品推荐

