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

jQuery Ajax POST请求提交Kendo Grid批量更新数据未传入Controller问题排查

问题根因

你的AJAX请求存在两处配置错误,导致后端无法正确解析请求体:

  • 未指定JSON请求的Content-Type:jQuery AJAX默认的Content-Type是application/x-www-form-urlencoded,但你需要提交JSON格式数据,必须显式声明告诉后端用JSON解析器处理请求体。
  • 提交的数据结构不匹配后端参数定义:后端[FromBody]直接接收List<MyModel>数组,不需要外层包裹items键;你现有代码把序列化后的数组包在items属性里,同时没有序列化整个请求体,最终提交的是表单格式的键值对,和后端预期的纯JSON数组结构不匹配。

修复后的AJAX代码

$.ajax({
    type: "POST", 
    async: false, 
    url: baseAPIURL + "MrrRequest/UpdateRequest",
    timeout: 15000,
    dataType: 'json',
    cache: false,
    // 新增:声明请求体为JSON格式
    contentType: 'application/json; charset=utf-8',
    // 修改:直接序列化数组作为请求体,不需要外层包裹items
    data: JSON.stringify(options.data.models),
    success: function (result) {
        options.success(result);
        return true;
    },
    complete: function (data) {
        $("#myGrid").data("kendoGrid").dataSource.read();
    },
    error: function (jqXHR, textStatus, errorThrown) {
        alert(textStatus);
        options.error();
    }
});

原理说明

你用Fiddler直接调用能成功,就是因为Fiddler里你提交的是纯JSON数组、且Content-Type设置正确,和后端参数的预期完全匹配。修改AJAX配置后,请求结构和Fiddler提交的结构一致,后端即可正常解析出List<MyModel>集合。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 05:45:00