1

所以我一直在尝试 Kendo UI 网格,我最初只是从普通的非 MVC 助手生成的客户端网格开始,通过 GET 从 Web API 控制器获取数据。工作得很好,但开始让模型绑定排序和过滤参数变得混乱。

所以我开始使用 MVC 助手并遇到了一个问题,那就是:

当使用非 MVC 生成的网格时,配置为使用 GET 并且数据源“类型”未设置,GET 参数如下所示:

page    1
pageSize    10
skip    0
sort[0][dir]    asc
sort[0][field]  OrderID
take    10

这是绑定到 DataSourceRequest MVC 帮助程序的正确形式......但是如果我使用 MVC 扩展呈现所述网格,它将数据源“类型”设置为“aspnetmvc-ajax”,这导致 GET 参数看起来像这样:

filter  
group   
page    1
pageSize    10
sort    OrderID-asc

(如果你有多个排序参数,它会用“~”将它们连接起来。)。第二种格式将无法正确绑定到 DataSourceRequest,因此您最终会得到一个空的“Sorts”成员......这对我来说似乎完全倒退了,因为如果您使用 MVC 扩展,您将只有 DataSourceRequest 帮助器 - 但是当您使用它们,数据发送不正确

我还尝试按照示例发布到常规 MVC 控制器并遇到同样的问题。

无论如何,我试图找到一种方法来告诉扩展不呈现 aspnetmvc-ajax。有人有想法么?提前致谢...

4

2 回答 2

2

MVC 扩展使用 aspnet-ajax 传输设置,如果您使用将处​​理绑定的 DataSourceRequest 属性,它们将绑定到 DataSourceRequest 对象。检查演示的控制器代码。

    public ActionResult EditingCustom_Read([DataSourceRequest] DataSourceRequest request)
    {
        return Json(SessionClientProductRepository.All().ToDataSourceResult(request));
    }
于 2013-06-21T18:59:55.730 回答
1

好的,所以解决方案是使用此处示例代码中为 webapi 提供的模型绑定器:

用于 Web API 的 Kendo UI Grid Params 模型绑定器

这是我偶然发现的……当然,这只是我与 Kendo UI 的“冒险”的开始……

于 2013-06-25T21:29:28.693 回答