ASP.NET MVC中AJAX POST请求Check方法参数始终为null问题咨询
故障原因
核心是前后端提交的参数键名与后端接口入参名不匹配,触发ASP.NET模型绑定失败:
- 前端checkcode函数的AJAX请求中,提交的data字段为
{a, b, c, d},传递的参数键名分别是a、b、c、d - 后端Check方法定义的入参名为e、f、g、h,和前端传递的键名完全不对应,因此模型绑定无法正确赋值,所有入参均为null
修复方案
两种方案二选一即可:
- 修改前端提交的参数键名,和后端入参名对齐:
将AJAX中的data字段修改为:
data: {e: a, f: b, g: c, h: d}
- 修改后端Check方法的入参名,和前端传递的键名对齐:
将Check方法签名修改为:
[HttpPost] public bool Check(string a, string b, string c, string d) { if (o1.FirstColor == a && o1.SecondColor == b && o1.ThirdColor == c && o1.FourthColor == d) { return true; } else { return false; } }
额外优化建议
前端AJAX中设置的dataType: "text"和后端返回的bool类型存在不匹配,建议移除该配置,让jQuery自动识别响应类型,避免前端判断逻辑出错。
内容的提问来源于stack exchange,提问作者Vipp90
相关产品推荐
相关产品推荐

