我在我的 MVC3 应用程序中使用了 Kendo UI 网格,对此我感到非常满意。我正在使用 Telerik 提供的示例(摘录如下)来格式化网格的 DataSource 盟友发布的数据,一切都很好。但是,我不想依赖这样的代码。我想让 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 ajaxes 之前对其进行操作。默认情况下,Kendo DataSource 发送内容类型的表单编码,但对于 MVC 模型绑定器来说并不完全正确。没有这个,我仍然可以使用 FormCollection 并进行自己的绑定,但这不是。
当我配置DataSource
发送 JSON,并将我的映射函数更改为如下所示
parameterMap: function(data, operation) {
return JSON.stringify(data);
}
我在请求中发送了以下数据,但现在我不知道如何让 MVC 绑定到这个。现在我唯一的希望是在 action 方法中获取 Request.Params[0],然后自己反序列化这个 JSON。
我认为我不应该编写任何代码来让两个 HTTP 端点在当今时代使用 JSON 进行正确通信。我做错了什么,或者,我应该在我身边看什么,即请求的接收者。我真的更愿意尽量减少我对客户端的干预,也许只是stringify
打电话。