I'm new to Kendo UI and MVC and am working on an ASP.Net MVC3 project using Razor. I've based my grid on a demo at http://docs.kendoui.com/documentation/getting-started/using-kendo-with/aspnet-mvc/helpers/grid/ajax-binding. I could easily do this as a traditional ASP.Net project in which I'm expert but want to master this new pattern.
My problem is that the grid won't render. The JSON content coming back appears valid to me. I've got a similar grid in DataTables where I've got the grid to at least render the first level but this one is proving to be stubborn. I'd prefer to use KendoUI if possible.
I've determined the the Ajax call is working and that JSON content is being returned to the browser. I'm not sure what might be wrong. I'm binding to a List collection of Batch objects. A Batch object has properties to be displayed in the first level of the grid. The Batch object also has a property that returns a List collection of Transaction objects which will be displayed on demand in the nested grid which I haven't gotten to yet.
Can anyone point me to where I've gone wrong? I've no clue what to do next and can't find any articles that look like a solution.
Here's the code I have so far:
// the controller
// called by Index2: returns a list of BatchHeader objects directly from the ROAMHostSvc
public ActionResult FetchBatchList2()
DateTime aDate = new DateTime(0001, 1, 1);
ROAMHostSvc.Notification messages1 = null;
ROAMHostSvc.ROAMHostSvcClient hostSvc = null;
> batchCollection = new List<
hostSvc = new ROAMHostSvc.ROAMHostSvcClient();
batchArr = hostSvc.GetBatchCollection(ref messages1, false, aDate, aDate, false, aDate, aDate);
// assign the objects in the array to the List collection
//for (int i = 0; i <= batchArr.Length - 1; i++)
//return PartialView(Json(batchCollection, JsonRequestBehavior.AllowGet));
return Json(batchArr, JsonRequestBehavior.AllowGet);
catch (Exception ex)
private void Close_WCF_Service(ref ROAMHostSvc.ROAMHostSvcClient hostSvc)
if ((hostSvc != null))
if (hostSvc.State == System.ServiceModel.CommunicationState.Opened)
hostSvc = null;
catch (Exception ex)
ViewBag.Title = "Index1";
columns.Bound(b => b.BatchID);
columns.Bound(b => b.Transmitted_DateTime);
columns.Bound(b => b.Completed_DateTime);
columns.Bound(b => b.Created_DTTM);
columns.Bound(b => b.Created_EmpID);
.DataSource(dataSource => dataSource
.Read(read => read.Action("FetchBatchList2", "Home"))