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
};