Kendo UI Grid重复请求服务器错误

时间:2013-03-26 16:00:09

标签: kendo-ui

我不知道如何描述细节,您可以在此视频中看到错误: http://www.youtube.com/watch?v=D6NPd-j2erg&feature=youtu.be 这是我使用的代码:

$(document).ready(function () {
    var dataSource = new kendo.data.DataSource({
        transport: {
            read: {
                url: "/customer/get",
                dataType: "json",
                type: "POST"
            },
            update: {
                url: "/customer/edit",
                dataType: "json",
                type: "POST"
            },
            destroy: {
                url: "/customer/delete/",
                dataType: "json",
                type: "POST"
            },
            create: {
                url: "/customer/add",
                dataType: "json",
                type: "POST"
            }
        },
        batch: false,
        pageSize: 20,
        serverPaging: true,
        serverFiltering: true,
        serverSorting: true,
        schema: {
            data: "Data",
            total: "Total",
            model: {
                id: "CustomerId",
                fields: {
                    CustomerId: { editable: false, nullable: true },
                    Name: { validation: { required: true } },
                    Code: { type: "string", editable: false }
                }
            }
        }
    });

    $("#grid").kendoGrid({
        dataSource: dataSource,
        height: 430,
        filterable: true,
        sortable: true,
        pageable: {
            refresh: true,
            pageSizes: [10, 20, 30],
            buttonCount: 10
        },
        toolbar: ["create"],
        columns: [
            { field: "Name", title: "Name" },
            { field: "Code", title: "CODE", width: "100px" },
            { command: ["edit", "destroy"], title: " ", width: "200px" }],
        editable: "popup"
    });
});

我犯了什么错吗? 我在下面添加了Kendo Ui库:

<script src="/Scripts/kendo/2013.1.319/jquery.min.js"></script>
<script src="/Scripts/kendo/2013.1.319/kendo.all.min.js"></script>
<script src="/Scripts/kendo/2013.1.319/kendo.aspnetmvc.min.js"></script>
<script src="/Scripts/kendo.modernizr.custom.js"></script>

1 个答案:

答案 0 :(得分:4)

新版本的jQuery确实存在重大变化,影响了2013年的剑道Q1版本2013.1.319

http://jquery.com/upgrade-guide/1.9/#jquery-ajax-returning-a-json-result-of-an-empty-string

由于服务器返回空结果,以防所有内容在服务器端正确执行 - 错误事件因为空结果无效json而上升。

要解决此问题,我建议您从服务器返回空数组。

对于使用Extensions的ASP.NET用户,可以使用:

返回Json(new object [0] .ToDataSourceResult(request,ModelState));

基本上,更新/删除操作后服务器的有效结果应与此类似:

{"Data":[],"Total":0,"AggregateResults":null,"Errors":null}

这将通过具有下一个内部版本的ASP.NET MVC用户的ToDataSourceResult扩展在内部解决(我们很可能明天将其添加),并且它也将被添加到文档的重大更改/故障排除部分。 / p>