【问题标题】:DataSourceRequest always nullDataSourceRequest 始终为空
【发布时间】:2014-07-08 08:13:52
【问题描述】:

我正在尝试使用 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,或 this 无济于事。

【问题讨论】:

    标签: asp.net-web-api kendo-ui kendo-datasource


    【解决方案1】:

    创建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

    【讨论】:

      【解决方案2】:

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

      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 文档]

      我希望这会有所帮助。

      【讨论】:

        猜你喜欢
        • 2017-07-31
        • 2019-07-18
        • 2019-08-18
        • 2011-12-29
        • 2019-07-02
        • 2019-05-04
        • 1970-01-01
        • 2011-05-04
        • 2015-10-29
        相关资源
        最近更新 更多