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

.Net MVC中DevExpress DataGrid无法加载数据的问题求助

问题解决步骤

1. 修正控制器返回格式

你的控制器代码中,new JsonResult(Ok(result))会将OkObjectResult作为Json数据返回,导致前端拿到嵌套的结构。直接返回数据列表即可:

[HttpGet]
public JsonResult GetAllPeople()
{
    var result = context.Persons.ToList(); // 调用ToList()确保数据从数据库加载完成
    return Json(result);
}

2. 解决异步加载顺序问题

$(() => { ... })会在DOM加载完成后立即执行,此时AJAX请求还未完成,peopleList仍是未定义状态,导致DataGrid初始化时没有数据。可以通过两种方式修复:

方案一:在AJAX回调中初始化DataGrid

@section Scripts {
    <script>
        $.ajax({
            type: "GET",
            url: "/Persons/GetAllPeople",
            dataType: "json",
            success: function (peopleList) {
                $('#gridContainer').dxDataGrid({
                    dataSource: peopleList,
                    columns: ['lastName', 'firstName', 'address', 'dateOfBirth'],
                    showBorders: true,
                });
            },
            error: function (error) {
                console.log(error);
            }
        });
    </script>
}

方案二:使用DevExpress内置数据源配置(更推荐)

DevExpress DataGrid支持直接配置远程数据源,无需手动编写AJAX逻辑:

@section Scripts {
    <script>
        $(() => {
            $('#gridContainer').dxDataGrid({
                dataSource: {
                    load: function() {
                        return $.getJSON("/Persons/GetAllPeople");
                    }
                },
                columns: ['lastName', 'firstName', 'address', 'dateOfBirth'],
                showBorders: true,
            });
        });
    </script>
}

额外检查点

  • 确保页面中存在ID为gridContainer的DOM元素,例如:<div id="gridContainer"></div>
  • 确认DevExpress的脚本和样式文件已正确引入到页面中

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 07:10:27