在Ajax Binding的Kendo UI Ajax绑定文档中,描述了将多个数据参数传递给操作方法,但没有说明如何传递像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
};