Kendo Grid没有调用正确的DynamicLINQ方法

时间:2014-10-02 23:02:00

标签: kendo-ui kendo-grid dynamic-linq

我的网格不会调用我的参数化DataSourceResult方法。它只是调用无参数的。我已经研究过this article,直到我的眼睛掉出来。我错过了什么?

来自我的javascript控制器:

$("#grid").kendoGrid({
    dataSource: {
        transport: {
            read: function (options) {
                userService.getGridUserList($.extend(options.data))
                .success(function (result) { options.success(result); })
                .error(function (result) { options.error(result); });
            },
            parameterMap: function(options, type) {
                return kendo.stringify(options);
            }
        },
        requestStart: function (e) {
        },
        requestEnd: function (e) {
        },
        schema: {
            data: "data",
            total: "total"
        },
        pageSize: 25,
        serverPaging: true,
        serverSorting: true,
        serverFiltering: true
    },
    height: 600,
    filterable: true,
    sortable: true,
    pageable: true,
    columns: [
        { field: "firstName", title: "First Name" },
        { field: "lastName", title: "Last Name" },
        { field: "email", title: "email" }
    ]
});

来自我的C#WebAPI:

//**doesn't get called**
public DataSourceResult GetGridUserList(GetUserGridListInput input)
{
    var q = repository.GetAll().OrderBy(t => t.Id);
    return q.ToDataSourceResult(input.Take, input.Skip. input.Sort, input.Filter);
}

//**doesn't get called**
public DataSourceResult GetGridUserList(int take, int skip, IEnumerable<Sort> sort, Filter filter)
{
    var q = repository.GetAll().OrderBy(t => t.Id);
    return q.ToDataSourceResult(take, skip, sort, filter);
}

//**gets called every time**
public DataSourceResult GetGridUserList()
{
    var q = repository.GetAll().OrderBy(t => t.Id);
    return  q.ToDataSourceResult(500, 0, null, null);
}

2 个答案:

答案 0 :(得分:0)

该示例使用POST请求,也许网格需要。

  

“我正在使用POST,因为默认情况下MVC会阻止不安全的GETS。这就是   很好,因为我们将需要一个POST请求结构   很快。“

答案 1 :(得分:0)

原来我在服务电话中打乱了网格参数。我需要解决的问题是添加{}作为第一个参数:

userService.getGridUserList( {}, $ .extend(options.data))