c# - Returning two sets of action in one controller -


so doing displaying list of categories in page , each category contains sublist of categories. have controller , returning list of categories without sublist of categories. how can sublist showing using same controller.

controller:

 public courseindexvw get(int id)     {         var _types = new elementtypesservice().getelementmodelsforcourseindex(id, websecurity.currentuserid);         var _courseindexbytypesvw = new coursesectionscontrollerhelper().courseindextypevw(id);         _courseindexbytypesvw.types = _types.tolist();         var _activetype = _courseindexbytypesvw.types.first();         _courseindexbytypesvw.activeid = _activetype != null ? _activetype.id : -1;         return _courseindexbytypesvw;     } 

getelementmodelsforcourseindex:

public list<elementmodelforcourseindex> getelementmodelsforcourseindex(int elementid, int userid, int depthlevel = 2)         {             list<elementmodelforcourseindex> typesname;             elementtype type;             using (var db = datacontextmanager.alestoredprocscontext)             {                  typesname = db.getelementmodelsforcourseindex<elementmodelforcourseindex>(elementid, userid, r => new elementmodelforcourseindex{                         id = elementsmodelsforcourseindexmap.id(r),                         identity = elementsmodelsforcourseindexmap.identity(r)                     }).orderby(n=>n.identity).tolist();             }             foreach (elementmodelforcourseindex typecontent in typesname)             {                 typecontent.children = getelementchildrenmodelsforcourseindex(elementid, userid, type.modelid, depthlevel);             }         } 

getelementchildrenmodelsforcourseindex:

    public list<elementmodelforcourseindex> getelementchildrenmodelsforcourseindex(int elementid, int userid, elementtype typeid, int depthlevel = 2)     {         using (var db = datacontextmanager.alestoredprocscontext)         {             return db.getelementwithcalendarandpermsbymodel<elementmodelforcourseindex>(elementid, userid, typeid.id, r => new elementmodelforcourseindex             {                 identityname = elementsmodelsforcourseindexmap.identityname(r),                 valuestring = elementsmodelsforcourseindexmap.valuestring(r),                 timereleased = elementsmodelsforcourseindexmap.timereleased(r),                 timedue = elementsmodelsforcourseindexmap.timereleased(r)             }).orderby(i => i.identityname).tolist();         }     } 

update current issue typecontent.children = getelementchildrenmodelsforcourseindex(elementid, userid, type.modelid, depthlevel); error getting is: override method has invalid arguments appreciated , if missing information let me know. thanks!

you can modify model , add children property:

public class elementmodelforcourseindex {     // *snip* code     public list<elementmodelforcourseindex> children {get; set;} } 

you either within current getelementmodelsforcourseindex or use helper method this:

public list<elementmodelforcourseindex> getelementmodelsforcourseindex(int elementid, int userid, int depthlevel = 2)     {         list<elementmodelforcourseindex> courses;         using (var db = datacontextmanager.alestoredprocscontext)         {             courses =  db.getelementmodelsforcourseindex<elementmodelforcourseindex>(elementid, userid, r => new elementmodelforcourseindex{                     id = elementsmodelsforcourseindexmap.id(r),                     identity = elementsmodelsforcourseindexmap.identity(r)                 }).orderby(n=>n.identity).tolist();         }         each(elementmodelforcourseindex course in courses)         {             // here filling children.              //you need check if parameters correct ones.              // since haven't shown actual model class, i'm guessing parameters             course.children = getelementchildrenmodelsforcourseindex(elementid, userid, depthlevel);         }         return courses;     } 

Comments