Asp.net web api jQuery网格Web API 404的剑道用户界面

Asp.net web api jQuery网格Web API 404的剑道用户界面,asp.net-web-api,kendo-ui,kendo-grid,Asp.net Web Api,Kendo Ui,Kendo Grid,我正在使用用于jQuery网格的KendoUI从ASP.NETWebAPI中获取一些填充的数据。数据按预期加载,一切正常。然而,自从我启用了服务器端过滤(这仍然是一个需要处理的问题,正如前面的问题:)以来,每当应用一些过滤器时,我经常会收到404错误 过滤记录的请求并不总是会失败,但这种情况偶尔会发生,并非总是如此。我无法确定其根本原因。 到目前为止,我确信没有网络相关的问题导致这种情况(正如我们在本地机器上测试的那样) 我在这里关注的唯一问题是在请求传递过滤器的情况下偶尔出现的404 以下是数

我正在使用用于jQuery网格的KendoUI从ASP.NETWebAPI中获取一些填充的数据。数据按预期加载,一切正常。然而,自从我启用了服务器端过滤(这仍然是一个需要处理的问题,正如前面的问题:)以来,每当应用一些过滤器时,我经常会收到404错误

过滤记录的请求并不总是会失败,但这种情况偶尔会发生,并非总是如此。我无法确定其根本原因。 到目前为止,我确信没有网络相关的问题导致这种情况(正如我们在本地机器上测试的那样)

我在这里关注的唯一问题是在请求传递过滤器的情况下偶尔出现的404

以下是数据源配置:

            dataSource: {
                transport: {
                    read: {
                        type: "POST",
                        url: "/api/MyController"
                    }
                },
                schema: {
                    model: {
                        fields: {
                           ...
                        }
                    },
                    data: "data",
                    total: "total",
                    aggregates: "aggregate"
                },
                serverPaging: true,
                serverSorting: true,
                serverAggregates: true,
                serverFiltering: true,
                pageSize: 20,
                aggregate: [
                    ...
                ],
            }

在通过多个筛选器并且服务器拒绝请求的情况下,查询参数似乎太长

一个可能的解决方案是增加允许的查询参数长度(我没有使用)

或者,我将请求切换到POST(现在过滤器作为主体的一部分被传递),它解决了我的问题

transport: {
    read: {
        type: "POST",
        url: "/api/Data/MyData"
    }
}

似乎是一个路由问题。你的控制器看起来像什么?如何传递过滤器参数?