MVC Hierarchical grid - Load on demand - throwing Object reference error


I am trying to use a hierarchical grid using MVC 5. I am suppose to have three levels of data in the grid - parent , child and grand child.

I am able to bind the parent but not the child using Load on demand from the controller.

public class ParentViewModel
  public int PId {get; set;}
  public string Name {get; set;}
  public ICollection ChildDetails

Public class ChildViewModel
  public int CId {get; set;}
  public int PId {get; set;}
  public int CData {get; set;}

@model Infragistics.Web.Mvc.GridModel



private GridModel GetGridModel()

            GridModel model = new GridModel();
            model.AutoGenerateColumns = false;
            model.AutoCommit = true;
            model.PrimaryKey = "PId";
            model.AutoGenerateLayouts = false;
            model.ID = "igGrid";

            model.LoadOnDemand = true;

            model.Columns.Add(new GridColumn { Key = "PId", Hidden = true, DataType = "number" });
            model.Columns.Add(new GridColumn { Key = "Name", HeaderText = "Parent Name ", DataType = "string" });
            model.DataSourceUrl = (Url.Action("BindParentDetails"));

            GridColumnLayoutModel childModel = new GridColumnLayoutModel();
            childModel.Key = "ChildDetails";
            childModel.PrimaryKey = "PID";
            childModel.ForeignKey = "CId";
            childModel.AutoGenerateColumns = false;
            childModel.Columns.Add(new GridColumn { Key = "CId", HeaderText = "Child ID", DataType = "number" });
            childModel.Columns.Add(new GridColumn { Key = "CData", HeaderText = "Child Data", DataType = "number" });
            childModel.DataSourceUrl = Url.Action("BindChildDetails");

            return model;

        public JsonResult BindParentDetails()
            GridModel rModel = GetGridModel();

            var p = _service.GetPDetails();

            rModel.DataSource = p.AsQueryable();
            var res = rModel.GetData();
            return res;

        public JsonResult BindChildDetails(string path, string layout)
            var pid = path.Substring(path.LastIndexOf(':') + 1);

            GridModel grd = GetGridModel();

            var p = _service.GetChildDetails(pId);
            grd.DataSource = p.AsQueryable();
            var res = grd.GetData(path, layout);
            return res;

When I run the solution it binds the parent grid correctly. On clicking the + icon it goes into BindChildDetails function and breaks on:

var res = grd.GetData(path, layout);

An exception of type 'System.NullReferenceException' occurred in Infragistics.Web.Mvc.dll but was not handled in user code

Additional information: Object reference not set to an instance of an object.

It has correct values in path and layout

grd.DataSource  is set correctly with the data from the DB.

The version of Infragistics.Web.Mvc we are using is

Can anyone please help me with this?