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

ASP.NET Core 6 MVC中Ajax传参至Controller方法时对象为null的问题

错误原因及修复方案
  • 多余字段导致模型绑定失败:Ajax请求中传递了Val6字段,但TableData实体类并未定义该属性。ASP.NET Core的模型绑定默认启用严格匹配,多余字段会触发绑定失败,导致参数对象为null。
    修复:删除Ajax代码中"Val6": $('#v6').val(),这一行,确保传递的字段与实体类属性完全匹配。

  • Controller返回语句语法错误:Controller方法中return Json(var);存在语法问题,var是C#关键字,不能直接作为参数传入Json()方法,这会引发编译错误,影响请求正常响应。
    修复:将返回语句改为return Json(result);,正确返回数据库操作结果。

  • 额外检查项:

    • 确认Controller名称为DataInsertionController,确保URL路径DataInsertion/Insert_data路由匹配正确;
    • 检查页面中输入框的IDv1至v5是否存在且拼写正确,避免传递未定义的字段值;
    • 可在Controller方法中添加调试输出(如Console.WriteLine(System.Text.Json.JsonSerializer.Serialize(_data));),查看请求的JSON内容是否符合预期。

修复后的代码示例

修复后的Ajax代码

function InsertDATA() {
    var _data = {
        "Val1": $('#v1').val(),
        "Val2": $('#v2').val(),
        "Val3": $('#v3').val(),
        "Val4": $('#v4').val(),
        "Val5": $('#v5').val()
    };
    $.ajax({
        type: 'POST',
        url: 'DataInsertion/Insert_data',
        data: JSON.stringify(_data),
        contentType: 'application/json',
        dataType: "JSON",
        success: function(r) {
            console.log("RESULT", r);
        },
        error: function(xhr, status, error) {
            var err = eval("(" + xhr.responseText + ")");
            alert(err.Message);
        }
    });
}

修复后的Controller方法

[HttpPost]
public IActionResult Insert_data([FromBody] TableData _data)
{
   var result = DB.Insert(_data);
   return Json(result);
}

内容的提问来源于stack exchange,提问作者mohamed souilmi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 10:33:19