在剑道UI Ajax的绑定文件的Ajax绑定描述传递多个数据参数为一个操作的方法,但它并没有解决通过阵列等多选值.
在下面的示例中,如果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);
}
Run Code Online (Sandbox Code Playgroud)
编辑:getCriteria应该将数据转换为字符串,如下所示:
function getCriteria() {
var multisel = $("#sites").data("kendoMultiSelect").value().toString();
return {
sitesFilter: multisel
};
Run Code Online (Sandbox Code Playgroud)