我不知道如何描述细节,您可以在此视频中看到错误: 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>
答案 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>