在Kendo Docs中使用 Ajax Binding 期间的客户端数据处理,我发现将 Json 数组映射到 MVC ModelBinder 非常困难。
@(Html.Kendo()
.Grid<PickerDocumentViewModel>()
.Name("DocumentAttachments")
.DataSource(dataSource => dataSource
.Ajax()
.Read(read => read
.Action("PickerDocuments", "DocumentRepository")
.Data("GetSelectedDocuments")))
.Columns(columns =>
{
...
}))
JavaScript 函数 GetSelectedDocuments 返回 PickerDocumentViewModel 的 Json 数组。使用 FireBug,我看到 Post 数据看起来最不寻常:
0[Description] Doug
0[EditedDateTime] Fri Sep 13 2013 15:06:44 GMT-0400 (Eastern Standard Time)
0[FileExtension] txt
1[Description] a
1[EditedDateTime] Mon Sep 09 2013 18:21:56 GMT-0400 (Eastern Standard Time)
1[FileExtension] docx
与 MVC 期望对象列表进入的方式相反:
[0].Description Doug
那么,我怎么可能 1. 更改 Kendo 形成发布数据的方式以使用标准 MVC 列表模型绑定?
public ActionResult PickerDocuments([DataSourceRequest]DataSourceRequest request, IList<PickerDocumentViewModel> viewModels)
{
- 或者教 MVC 如何以 Kendo 发送的方式进行 ModelBind?