- 我正在使用带有 jQ uery 1.8.2的KendoUI 版本2012.3.1114。
- 我正在使用 MVC4,我的方法是路由在 fetch 上抛出一个控制器,在发布时使用 API 控制器。这些工作正常,我已经验证返回的实体包含正确的填充值(Id、Sender、Subject)
- 我没有使用 MVC 剃须刀版本。
问题
我遇到的问题是我的对象已保存并正确返回,但是当它通过“options.success”方法上的 kendo.web.min.js 文件传递时,模型似乎没有填充 Id 字段与新值。
这是与 KendoGrid 一起使用的 js
dataSource = new kendo.data.DataSource({
transport: {
read: function (options) {
$.ajax({
dataType: 'json',data: options.data, url: 'messagesfetchmessages', cache: false,
success: function (result) {
options.success(result);
}
});
},
create: function (options) {
options.data.Id = 0;
debugger
$.ajax({
dataType: 'json',data: options.data,type: "POST",url: '/api/messages',cache: false,
success: function (result) {
//var model = kendo.stringify(result)
debugger
options.success(result);
},
error: function (result) {
options.error(result);
}
});
},
},
batch: true,
pageSize: 30,
schema: {
data: "data",
model: {
id: "Id",
fields: {
Id: { editable: false, nullable: true },
Sender: { validation: { required: true } },
Subject: { validation: { required: true } },
}
}
}
});
$("#grid").kendoGrid({
dataSource: dataSource,
pageable: true,
height: 400,
toolbar: ["create"],
columns: [
{ field: 'Id', width: "10px" },
{ field: 'Sender', width: "50px" },
{ field: 'Subject', width: "50px" }
{ command: ["edit", "destroy"], title: " ", width: "210px" }],
editable: "popup"
});
这是结果的几个屏幕截图:
这是成功保存返回的结果
下面是 KendoUI 调用 'success' 并将对象传递给 jquery deferred 函数后的结果截图(注意模型Id为空):
success: function (t) {
e.resolve({
response: t,
models: n,
type: i
})
},
令人惊讶的是,将我的头撞在键盘上只会伤害键盘......任何指针将不胜感激!