在我的ASP.net MVC应用程序中,我有一个带有MultiSelect列表的Kendo UI Grid。我要做的是根据MultiSelect列表中的选择过滤网格,但我的视图崩溃时出现以下错误:
无法加载资源:服务器响应状态为500(内部服务器错误)
这是我的代码:
@(Html.Kendo().MultiSelect()
.Name("filter")
.DataValueField("SkillID")
.DataTextField("SkillName")
.Placeholder("Select Skills")
.Events(e => e.Change("onChange"))
.AutoBind(false)
.DataSource(source =>
{
source.Read(read =>
{
read.Action("GetSkills", "Home");
})
.ServerFiltering(true);
})
)
@(Html.Kendo().Grid(
(IEnumerable<BugFree.ViewModels.TechSkillViewModel>)ViewBag.TechSkills)
.Name("grid1")
.Columns(columns =>
{
columns.Bound(technician =>
technician.UserID).Filterable(false);
columns.Bound(technician =>
technician.FirstName).Filterable(false);
})
.Pageable()
.Sortable()
.Filterable()
.DataSource(datasource => datasource
.Ajax()
.PageSize(20)
.ServerOperation(false)
.Read(read => read.Action("GetTechnicians", "Home").Data("additionalData"))
)
)
<script>
function additionalData(e) {
var value = $("#filter").data("kendoMultiSelect").value();
alert(value);
return { filter: value }; // send the filter value as part of the Read request
}
function onChange() {
var grid = $("#grid1").data("kendoGrid");
grid.dataSource.read(); // rebind the Grid's DataSource
}
这是控制器代码:
public ActionResult GetTechnicians(string filter, [DataSourceRequest] DataSourceRequest request )
{
// Do the filtering here
return Json(technicians, JsonRequestBehavior.AllowGet);
}
答案 0 :(得分:1)
尝试将控制器中的参数顺序切换为:
public ActionResult GetTechnicians([DataSourceRequest] DataSourceRequest request, string filter)
编辑: 我们也这样做
return Json(customers.ToDataSourceResult(request), JsonRequestBehavior.AllowGet);`