Ajax Binding の Kendo UI Ajax Binding ドキュメントでは、複数のデータ パラメータを Action メソッドに渡す方法について説明していますが、MultiSelect 値などの配列の受け渡しについては説明していません。
以下の例では、multisel が "237896" のような文字列に設定されている場合、コントローラーは sitesFilter="237896" を受け取ります。ただし、以下に示すように multisel が MultiSelect 値に設定されている場合、コントローラーは sitesFilter = null を受け取ります。
MVC ラッパーを使用してすべての MultiSelect 値を Action メソッドに送信する適切な方法は何ですか?
.DataSource(dataSource => dataSource
.Ajax()
.ServerOperation(false)
.Read(read => read.Action("Documents_Read", "Document")
.Type(HttpVerbs.Post)
.Data("getCriteria"))
function getCriteria() {
var multisel = $("#sites").data("kendoMultiSelect").value();
return {
sitesFilter: multisel
};
}
public ActionResult Documents_Read([DataSourceRequest] DataSourceRequest request, string sitesFilter=null)
{
return Json(GetDocuments(sitesFilter).ToDataSourceResult(request), JsonRequestBehavior.DenyGet);
}
編集: 以下に示すように、getCriteria はデータを文字列に変換する必要があります。
function getCriteria() {
var multisel = $("#sites").data("kendoMultiSelect").value().toString();
return {
sitesFilter: multisel
};