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 = "te@st.com", Name = "Terrence" }, new Person { Email="tes@t.com", 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
}" />