Json 剑道方格拒绝显示我的数据

Json 剑道方格拒绝显示我的数据,json,kendo-ui,kendo-grid,Json,Kendo Ui,Kendo Grid,这真让我沮丧。我觉得我做的每件事都很好,但我的网格不会显示任何东西。我知道我正确地发回了数据,因为我可以在Fiddler中看到它,并且它的格式与我的一个示例中的格式完全相同 来自Fiddler的数据如下所示(JSON,如预期的那样,带有“d”,但数组中有200个对象,这里我只显示一个) 这是我的网格代码。这是我试过的第50个版本 $(document).ready(function () { setupGrid(); }); function setupGrid() { ale

这真让我沮丧。我觉得我做的每件事都很好,但我的网格不会显示任何东西。我知道我正确地发回了数据,因为我可以在Fiddler中看到它,并且它的格式与我的一个示例中的格式完全相同

来自Fiddler的数据如下所示(JSON,如预期的那样,带有“d”,但数组中有200个对象,这里我只显示一个)

这是我的网格代码。这是我试过的第50个版本

$(document).ready(function () {
    setupGrid();
});

function setupGrid() {
    alert("click OK to make Ajax call");

    $("#projectManagerGrid").kendoGrid({
        columns: ["PROJECT_ID_NUMBER", "PROJECT_NAME", "CATEGORY", "CONTRIBUTION", "WIN_RATE", "SETTLEMENT", "DESCRIPTION", "JUSTIFICATION", "ACTIVE", "MODIFIED_USER", "MODIFIED_DATE"],
        dataSource: {
        type: "odata",
            transport: {
                read: {
                    type: "POST",
                    url: "/special_pages/DisputeProjectManager.aspx/getProjects",
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    success: function (response) { alert('WORKED!'); },
                    error: function (xhr, textStatus, errorThrown) { handleAjaxError(xhr, textStatus, errorThrown); }
                },
                parameterMap: function (data, type) {
                    return kendo.stringify(data);
                }
            }
        },
        schema: {
            data: "d",
            columns: ["PROJECT_ID_NUMBER", "PROJECT_NAME", "CATEGORY", "CONTRIBUTION", "WIN_RATE", "SETTLEMENT", "DESCRIPTION", "JUSTIFICATION", "ACTIVE", "MODIFIED_USER", "MODIFIED_DATE"],
            model: {
                id: "PROJECT_ID_NUMBER",
                fields: {
                    "PROJECT_ID_NUMBER": { type: "number", editable: false },
                    "PROJECT_NAME": { type: "string", editable: true },
                    "CATEGORY": { type: "string", editable: true },
                    "CONTRIBUTION": { type: "string", editable: true },
                    "WIN_RATE": { type: "string", editable: true },
                    "SETTLEMENT": { type: "string", editable: true },
                    "DESCRIPTION": { type: "string", editable: true },
                    "JUSTIFICATION": { type: "string", editable: true },
                    "ACTIVE": { type: "string", editable: true },
                    "MODIFIED_USER": { type: "string", editable: false },
                    "MODIFIED_DATE": { type: "date", editable: false }
                }
            }
        },
        editable: {
            update: true,
            create: true,
            destroy: false
        },
        toolbar: ["create", "save", "cancel"]
    });
}
这是我的页面方法,效果很好:

[WebMethod]
public static List<DISP_PROJECT_NAME_MASTER> getProjects() {
    try {
        using (DisputeProjectManagerEntities ctx = new DisputeProjectManagerEntities()) {
            var q = (from e in ctx.DISP_PROJECT_NAME_MASTER orderby e.MODIFIED_DATE descending select e);
            return q.ToList<DISP_PROJECT_NAME_MASTER>();
        }
    } catch {
        return null;
    }
}
[WebMethod]
公共静态列表getProjects(){
试一试{
使用(DisputeProjectManagerEntities ctx=new DisputeProjectManagerEntities()){
var q=(从ctx.DISP\u项目中的e开始,按e.MODIFIED\u日期降序选择e);
返回q.ToList();
}
}抓住{
返回null;
}
}
我不是在这里寻找代码修复。如果你能解释一下这是怎么回事,我会非常感激的。我花了很多时间阅读文档,我怀疑这与我的模型和模式错误有关,但是关于这些字段的文档没有足够的细节


一件非常奇怪的事情是,当我运行Ajax调用时,两个回调函数都没有运行。您可以看到我有一个错误和成功的回调-这两个运行都没有。我可以看到Ajax调用正在进行,数据正在返回。我希望这些函数中的一个或另一个能够运行-我的意思是,它必须是成功的或错误的,对吗?

模式定义应该是
数据源定义的一部分。i、 e.
模式
配置应该嵌套在
数据源
配置下。

模式
定义不应该是
数据源
定义的一部分吗?i、 e.
模式
配置不应该嵌套在
数据源
配置下吗?(我希望这有道理。)是的!请给我一个答案,这样我就可以相信你了。谢谢为了解决这个问题,您是否尝试过绕过AJAX调用,将从Fiddler获取的数据复制回来,并将其直接绑定到dataSource,而不是使用AJAX?很抱歉,我们在这里重复了评论。:)很高兴它成功了。马克,谢谢,是的,我在这里的一些问题中看到了这种技巧。这是一种很好的调试技术,谢谢提醒!我现在正在用煤气做饭,谢谢:)当它工作正常时,它是一个非常好的工具,但当它不工作时,它就像一个两岁的孩子一样令人沮丧!
[WebMethod]
public static List<DISP_PROJECT_NAME_MASTER> getProjects() {
    try {
        using (DisputeProjectManagerEntities ctx = new DisputeProjectManagerEntities()) {
            var q = (from e in ctx.DISP_PROJECT_NAME_MASTER orderby e.MODIFIED_DATE descending select e);
            return q.ToList<DISP_PROJECT_NAME_MASTER>();
        }
    } catch {
        return null;
    }
}