【发布时间】:2012-10-22 04:28:25
【问题描述】:
我正在使用 KendoUI Grid 来显示数据。我的服务器分页工作就像一个魅力。 kendo 网格中的每个页面更改都是对服务器的新 ajax 请求,服务器返回正确的数据页面。我现在正在尝试进行服务器端排序,但我无法让模型绑定绑定到排序值。
这是来自 Kendo Grid 的请求的样子:
我的操作方法如下所示:
public JsonResult GetReports(int pageSize, int skip, List<KendoSort> sort)
{
// sort is not being populated with the right data.
}
KendoSort 是一个自定义类:
public class KendoSort
{
public string Field { get; set; }
public string Dir { get; set; }
}
我知道我做的不对。我的操作方法应该如何正确捕获为排序提供的数据?屏幕截图仅显示排序集合中的单个项目,但网格可以传递更多。例如,它还可以包含一个额外的排序:
sort[1][field]: reportName
sort[1][dir]: asc
基本上它会说“按id升序排序,然后按reportName升序排序”。我怎样才能将这些数据放入我的操作方法中,而不必在Request 中四处寻找并手动解析参数?
【问题讨论】:
-
为什么不使用内置的
DataSourceRequest和DataSourceRequestModelBinder作为您的操作参数?然后您的操作将类似于public JsonResult GetReports([DataSourceRequest]DataSourceRequest request),其中请求对象包含所有需要的数据。 -
我想我可以走那条路。我还没有将 Kendo Mvc 二进制文件添加到项目中。采用纯 HTML5 方法。我想我仍然可以这样做,但使用一些类似的服务器端细节。
标签: ajax asp.net-mvc asp.net-mvc-3 model-binding kendo-ui