You need to enable JavaScript to run this app. MVC中如何将JsonResult返回的数据传递到JQGrid并正常展示?
优惠活动
大模型
产品
解决方案
定价
更多

MVC中如何将JsonResult返回的数据传递到JQGrid并正常展示?

你的JQGrid配置的jsonReader要求从返回JSON的rows字段读取数据列表,但后端Controller直接返回了数据数组,没有包裹JQGrid要求的结构,导致前端无法识别数据。

解决方案

1. 调整Controller返回结构(推荐)

修改Detail方法的返回数据,新增JQGrid必填的结构字段即可:

[HttpGet]
public JsonResult Detail()
{
    IntegrationsProcessor db = new IntegrationsProcessor(new MCNIDbContext());
    DBModel.Integrations row = db.GetIntegrationRow();
    List<Integrations> details = new List<Integrations>
    {
        new Integrations
        {
            IntegrationName = row.IntegrationName,
            CompanyEmail = row.CompanyEmail
        }
    };
    // 新增符合JQGrid要求的包裹结构
    var responseData = new 
    {
        rows = details, // 对应jsonReader里的root配置
        page = 1, // 当前页码
        total = 1, // 总页数
        records = details.Count // 总记录数
    };
    return new JsonResult()
    {
        Data = responseData,
        JsonRequestBehavior = JsonRequestBehavior.AllowGet,
        MaxJsonLength = Int32.MaxValue
    };
}

2. 可选:调整JQGrid配置适配现有返回值

如果不想修改后端代码,也可以修改jsonReader配置,直接读取根节点的数组:

jsonReader: {
    root: function (obj) { return obj; }, // 直接将返回的数组作为数据源
    page: function () { return 1; },
    total: function () { return 1; },
    records: function (obj) { return obj.length; },
    repeatitems: false
}

3. 额外排查点

  • 打开浏览器F12控制台,检查/Integrations/Detail请求的返回值是否正常,无404、500错误
  • 确认~/bundles/integrations打包的资源包含jQuery、JQGrid核心库,无JS报错
  • 确认colModel里的name属性值和后端返回的对象字段名完全一致,大小写敏感

内容的提问来源于stack exchange,提问作者Anirudh Singh Rawat

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 07:45:02