- jQuery 1.8.2でKendoUI バージョン2012.3.1114を使用しています。
- 私は MVC4 を使用しており、メソッドはフェッチ時にコントローラーをスローし、ポスト用に API コントローラーをルーティングしています。これらは正しく機能しており、返されたエンティティに正しい入力値 (ID、送信者、件名) が含まれていることを確認しました。
- 私は 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 遅延関数に渡した後の結果のスクリーン ショットです (モデルIDが null であることに注意してください)。
success: function (t) {
e.resolve({
response: t,
models: n,
type: i
})
},
驚いたことに、キーボードに頭をぶつけても、キーボードが痛むだけです....どんなポインタでも大歓迎です!