使用Kendoui网格的Odata v4包含过滤器

Rya*_*hek 3 odata asp.net-web-api kendo-grid kendo-asp.net-mvc

使用odata v4的asp.net web api Web服务使用包过滤器的最简单方法是什么?

似乎使用odata v4的Web服务不再承认'substringof'函数并且想要'contains'函数.

示例:使用网格中WorkUnitCode列上的Contains过滤器进行GET并输入"xYz".substringof(失败)

http://localhost:1486/odata/BillOfMaterials(2)/BillOfMaterialsItems?$format=json&$top=10&$filter=substringof('xYz',WorkUnitCode)&$count=true
Run Code Online (Sandbox Code Playgroud)

GET需要什么才能使contains函数起作用:

http://localhost:1486/odata/BillOfMaterials(2)/BillOfMaterialsItems?$format=json&$top=10&$filter=contains(WorkUnitCode,'xYz')&$count=true
Run Code Online (Sandbox Code Playgroud)

我相信有两种方法可以解决这个问题,并且不确定哪种方法更好或者两种解决方案都可以重复使用.

方法1:拦截请求并将其更改为使用包含反向参数的函数.方法2:将子串功能添加到web api.

Joh*_*ell 10

更新由于Kendo现在支持ODATA V4,因此不再需要进行调整以使其正常工作.

更改数据集类型

type: 'odata'

type: 'odata-v4'

应该做的伎俩.示例源代码在这里