You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C# Controller接收jQuery AJAX提交参数为null的问题如何解决

问题原因排查与修复方案

已知错误点

  • 前端AJAX配置中contentType拼写错误:你写的是aplication/json,正确拼写为application/json,该错误会直接导致服务端无法识别请求的内容格式。
  • 参数绑定规则不匹配:ASP.NET 默认对string、int这类简单类型的参数,默认从查询参数、表单数据中取值,你提交的是JSON格式的请求体,系统无法自动将JSON字段绑定到两个独立的string参数上。

修复方案

方案1:使用表单格式提交(改动最小)

不需要修改后端代码,仅调整前端AJAX逻辑,移除JSON序列化和错误的contentType配置即可:

$(document).ready(function () {
    $(document).on('submit', '#form', function () {
        var data = {
            val1: $("#val1").val(),
            val2: $("#val2").val()
        };
        $.ajax({
            type: "POST",
            url: 'url',
            data: data,
            success: function () {
                alert("It works")
            },
            error: function () {
                alert("It failed");
            }
        });
        return false;
    });
});

方案2:保留JSON提交,适配后端参数绑定

如果业务要求必须用JSON格式提交,按以下步骤调整:

  1. 修正前端contentType拼写为application/json
  2. 后端新增参数接收模型类:
public class CheckFormRequest
{
    public string Val1 { get; set; }
    public string Val2 { get; set; }
}
  1. 修改Controller方法,添加[FromBody]特性指定从请求体解析参数:
public IActionResult CheckForm([FromBody] CheckFormRequest request)
{
    // 通过 request.Val1、request.Val2 取值即可
    //Do stuff
}

内容的提问来源于stack exchange,提问作者Dominik Willaford

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 17:18:04