Just a quick note for myself and for anyone else trying to figure out how to get knockout-kendo.js to work with an datasource in a MVC project. First lets take a look at the server side code that returns your json object to the view.
[HttpPost] public ActionResult GetPersonJson([DataSourceRequest]DataSourceRequest request) { var filter = ((Kendo.Mvc.FilterDescriptor)request.Filters[0]).ConvertedValue.ToString().Trim(); if (filter == string.Empty) filter = "******"; var list = new List{ new Person { Email = "[email protected]", Name = "Terrence" }, new Person { Email="[email protected]", Name="Dixon" } }; return Json(list.Where(u => u.Name.ToLower().Contains(filter)); }
Next we take a look at the element. We add the kendo Autocomplete to the required text element.
<input data-bind="kendoAutoComplete: {dataTextField: 'Name', dataSource: { type: 'aspnetmvc-ajax', transport: { read: { url: '/Home/GetPersonJson', type: 'POST' } }, schema: { model: { fields: { Name: { type: 'string' }, Email: { type: 'string' } } } }, serverFiltering: true }, value: name }" />