I've been fighting to figure out what combination of Web API REST services and the Kendo UI Grid work well with both Microsoft Web API 2.2 (latest version for .NET 4.6) and the Kendo UI Grid version 2016.2.504, commercial.
OData v4 is
very easy to develop on the backend (Web API) but server side filtering/sorting/paging
seems to be broken on the front end (Kendo UI).
Despite setting the transport type to “odata-v4” the GET request that is
being sent to the service doesn’t even contain the dollar signs before the
parameter keys such as $filter or $top much less being actual OData v4 formats.
Ex: /odata/vwApplication?take=10&skip=0&page=1&pageSize=10&filter%5Bfilters%5D%5B0%5D%5Bfield%5D=FundingPeriodId&filter%5Bfilters%5D%5B0%5D%5Boperator%5D=eq&filter%5Bfilters%5D%5B0%5D%5Bvalue%5D=1&filter%5Bfilters%5D%5B1%5D%5Bfield%5D=StudentId&filter%5Bfilters%5D%5B1%5D%5Boperator%5D=eq&filter%5Bfilters%5D%5B1%5D%5Bvalue%5D=3369&filter%5Blogic%5D=and
HTTP/1.1
Using OData is not a requirement, it just seemed the simplest way to bind the Kendo UI Grid and get server side filtering, sorting and paging. I’m open to anything that’s quick to develop and easy to maintain (otherwise I’d just write it myself and not buy these kinds of tools).
Note: I am not interested in using any form of ASP on the front end, including MVC. Pure REST services only.
I'm down to having to write a recursive function in JavaScript to parse the Grid's filter to convert it into a proper OData v4 filter which seems rather silly considering we bought the commercial version to make setting up a grid quick and easy.
Is there an example that shows how to write a modern Web API 2 service in C# and bind it to the Kendo UI Grid in JavaScript that provides server side filtering, sorting and paging? I find projects for MVC that are several years old but not a newer pure Web API REST example.
You would think all of this should be as easy as telling the Kendo UI Grid to use OData v4 but after two days of reading and tweaking I don’t seem to be getting anywhere.
Thank you ahead of time for your help!