asp.net mvc - Loading parent and child nodes from remote data -


i've got method in controller returns list<treeviewitemmodel>() i'm populating correct hierarchy. seems serialize correctly, when load treeview, don't have of hierarchy, first level of nodes.

example:

treeview

each of above curricula has 2/3 scenarios underneath i've verified getting added items base object when going curriculum => treeviewitemmodel

controller:

public jsonresult getavailablecurricula(string locationid) {     locationid = "1";     if(locationid != string.empty)     {         var results = logic.getfilteredcurriculum().select(c => curriculumtotreeview(c));         return json(results, jsonrequestbehavior.allowget);     }     else     {         return json(new list<treeviewitemmodel>(),jsonrequestbehavior.allowget);     } }  private treeviewitemmodel curriculumtotreeview(curriculummodel c) {     var tree = new treeviewitemmodel()     {         id = c.curriculumid.tostring(),         text = c.curriculumname,         haschildren = c.scenarios.any()     };      if (tree.haschildren)     {         tree.items = c.scenarios.select(scenario =>             new treeviewitemmodel()             {                 text = scenario.name,                   }         ).tolist();         }     return tree; } 

view:

@(html.kendo().treeview() .name("availablecurricula") .datatextfield("text") .datasource(source => source     .read(read => read         .action("getavailablecurricula", "traineeassignments")     .data("filteravailablecurricula")     ) ) 

is there step need take bind child objects , parent, instead of 1 level @ time? have small set of data don't need reload often, hoping avoid loading each level individually/on-demand.

in case it's helpful, here's raw json i'm sending controller 1 of curricula:

{"enabled":true,"expanded":false,"encoded":true,"selected":false,"text":"operator b","spritecssclass":null,"id":"1","url":null,"imageurl":null,"haschildren":true,"checked":false,"items":[{"enabled":true,"expanded":false,"encoded":true,"selected":false,"text":"test 2","spritecssclass":null,"id":null,"url":null,"imageurl":null,"haschildren":false,"checked":false,"items":[],"htmlattributes":{},"imagehtmlattributes":{},"linkhtmlattributes":{}},{"enabled":true,"expanded":false,"encoded":true,"selected":false,"text":"scenario ii","spritecssclass":null,"id":null,"url":null,"imageurl":null,"haschildren":false,"checked":false,"items":[],"htmlattributes":{},"imagehtmlattributes":{},"linkhtmlattributes":{}}],"htmlattributes":{},"imagehtmlattributes":{},"linkhtmlattributes":{}} 

i believe remote data option treeview uses ajax load child data, either on demand or @ initial load - controlled loadondemand option.

the remote data examples in kendo docs behave way. how implemented on a previous project. full code example includes treeview grid.