1

我正在尝试使用 Kendo 的服务器端分页/过滤/排序,到目前为止,我正在这样做:

数据源是:

var QueueMessages = {
    type: "aspnetmvc-ajax",
    transport: {
        read: {
            url: "api/QueueMessages/wut",
            dataType: "json",
            type: "GET"
        }
    },
    schema: {
        model: ........
    },
    pageSize: 10,
    serverPaging: true,
    serverFiltering: true,
    serverSorting: true,
    filter: ....
};

并在 api 控制器中:

    [HttpGet]
    [ActionName("wut")]
    public DataSourceResult wut([DataSourceRequest]DataSourceRequest request)
    {
        return messages.ToDataSourceResult(request);
    }

然而,DataSourceRequest request总是null

我已经尝试了一些解决方案来解决寻找丢失 .js 的类似问题,或者无济于事。

4

2 回答 2

2

创建datasource应该是这样的:

var QueueMessages = new kendo.data.DataSource({
    type: "aspnetmvc-ajax",
    transport: {
        read: {
            url: "api/QueueMessages/wut",
            dataType: "json",
            type: "GET"
        }
    },
    schema: {
        model: ........
    },
    pageSize: 10,
    serverPaging: true,
    serverFiltering: true,
    serverSorting: true,
    filter: ....
});

你错过了 新的 kendo.data.DataSource

于 2015-08-18T16:33:28.527 回答
0

我使用以下方法解决了我的问题:

public DataSourceResult Get([System.Web.Http.ModelBinding.ModelBinder(typeof(WebApiDataSourceREquestModelBinder))] DataSourceRequest request)
{
   // return your data
}

因此,Kendo UI 似乎真的在寻找 System.Web.Http.ModelBinding.ModelBinder将请求绑定到控制器的类。因此,如果您不使用该类来绑定请求,它将为空。请注意,有一个ModelBinder属性类,不要使用它,因为结果也会为空。

这是我正在使用的文档(即使它是 C# 包装器),有一天它可能会有用:https ://docs.telerik.com/aspnet-mvc/helpers/grid/editing/webapi-editing?_ga= 2.245906311.2036381207.1547477384-1442120099.1541630215 [web api 文档]

我希望这有帮助。

于 2019-01-15T15:28:41.750 回答