Kendo Docsにある Ajax バインディング中にクライアント データ処理を使用すると、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 List ModelBinding を使用できるようにしますか?
public ActionResult PickerDocuments([DataSourceRequest]DataSourceRequest request, IList<PickerDocumentViewModel> viewModels)
{
- または、Kendo が送信する方法で ModelBind する方法を MVC に教えますか?