MVC3 アプリケーションで Kendo UI グリッドを使用していますが、非常に満足しています。以下の抜粋の Telerik 提供の例を使用して、グリッドの DataSource ally によって投稿されたデータをフォーマットしていますが、すべて問題ありません。ただし、このようなコードに依存する必要はありません。「トランスレータ」なしで Kendo と MVC を会話させたいと思います。つまり、次のコードです。
parameterMap: function(data, operation) {
var result = { };
for (var i = 0; i < data.models.length; i++) {
var model = data.models[i];
for (var member in model) {
result["models[" + i + "]." + member] = model[member];
}
}
return result;
}
この関数は、data
Kendo が ajax する前に操作できるようにする「フック」です。デフォルトでは、Kendo DataSource は content-type フォーム エンコードを送信しますが、MVC モデル バインダーには適していません。これがなくても、FormCollection を使用して独自のバインディングを行うことはできますが、それは有効ではありません。
JSON を送信するように を構成しDataSource
、マッピング関数を次のように変更すると、
parameterMap: function(data, operation) {
return JSON.stringify(data);
}
リクエストで次のデータが送信されますが、MVC をこれにバインドする方法がわかりません。今のところ私の唯一の希望は、アクション メソッドで Request.Params[0] を取得し、この JSON を自分で逆シリアル化することです。
この時代では、2 つの HTTP エンドポイントが JSON を使用して適切に通信するために、コードを記述する必要はないと思います。私は何を間違っていますか、または私の側、つまりリクエストの受信者で何を見なければなりませんか。私は、クライアント側での介入を最小限に抑えて、stringify
電話をかけることを本当に望んでいます。