使用Odata v4的Kendo查询过滤器对于某些过滤器选项失败

时间:2015-03-18 21:55:40

标签: c# filter kendo-ui kendo-grid odata

我正在使用一个启用了服务器过滤的kendo网格,网格调用一个数据源,这是一个web api控制器,它接受一个自定义Model绑定器(通过实现IModelBinder),它对Odata结果进行自定义排序和分页。现在,当使用某些过滤器选项时,我发现了问题。

请注意我已经修复了' substringof'的问题,因为使用odata v4的网络服务不再承认解释为here的substringof函数。我尝试在网格配置中指定odata-v4,但这也不起作用。因此最终转换过滤器以替换' substringof'到'包含'在自定义模型绑定器

以下网址的工作请求工作并返回数据

http://localhost:63455/api/data/gethistory $顶部= 5&安培; $滤波器=(同上+当量+ 1 +和+ PaymentId +当量+ 11) ?http://localhost:63455/api/data/gethistory $顶部= 5&安培; $滤波器=(同上+当量+ 1 +和+ PaymentId + GT + 11) ?http://localhost:63455/api/data/gethistory $顶部= 5&安培; $滤波器=(同上+当量+ 1 +和+ PaymentId + LT + 11)

以下网址不起作用请求工作并返回异常。这大于或等于,小于或等于和不等于过滤器。

http://localhost:63455/api/data/gethistory $顶部= 5&安培; $滤波器=(同上+当量+ 1 +和+ PaymentId + GE + 11) ?http://localhost:63455/api/data/gethistory $顶部= 5&安培; $滤波器=(同上+当量+ 1 +和+ PaymentId +了+ 11) ?http://localhost:63455/api/data/gethistory $顶部= 5&安培; $滤波器=(同上+当量+ 1 +和+ PaymentId + NE + 11)

  

{"消息":"发生错误。"," ExceptionMessage":"预期   RightParenthesis"" ExceptionType":" Kendo.Mvc.Infrastructure.Implementation.FilterParserException""堆栈跟踪":"   在   Kendo.Mvc.Infrastructure.Implementation.FilterParser.Expect(FilterTokenType   tokenType)\ r \ n at   Kendo.Mvc.Infrastructure.Implementation.FilterParser.ParseNestedExpression(个)\ r \ n   在   Kendo.Mvc.Infrastructure.Implementation.FilterParser.PrimaryExpression(个)\ r \ n   在   Kendo.Mvc.Infrastructure.Implementation.FilterParser.ComparisonExpression(个)\ r \ n   在   Kendo.Mvc.Infrastructure.Implementation.FilterParser.AndExpression(个)\ r \ n   在   Kendo.Mvc.Infrastructure.Implementation.FilterParser.OrExpression(个)\ r \ n   在   Kendo.Mvc.Infrastructure.Implementation.FilterParser.Expression(个)\ r \ n   在Kendo.Mvc.Infrastructure.Implementation.FilterParser.Parse()\ r \ n

  在Kendo.Mvc.Infrastructure.FilterDescriptorFactory.Create(String   输入)\ r \ n at   RequestModelBinder.BindModel(HttpActionContext   actionContext,ModelBindingContext bindingContext)

0 个答案:

没有答案