2012-09-27 174 views
0
public JsonResult GetFolderChildren(int id, List<string> res) 
    { 
      List<tblFolders> folders = (from x in db.tblFolders 
           where x.folderParent == id 
           select x).ToList(); 
      foreach (var f in folders) 
      { 
       res.Add("FOLDER_" + f.id.ToString()); 
      } 
      foreach (var r in res) 
      { 
       GetFolderChildren(int.Parse(r.Replace("FOLDER_", "")), res); 
      } 

     return Json(res, JsonRequestBehavior.AllowGet); 
    } 

但它不起作用。一个文件夹可以有孩子,他们的孩子可以有其他孩子等。 我的代码只是给了我第一个孩子。得到一棵树结构的孩子

+0

那么你想要叶子文件夹?然后我有一个解决方案,或者你想要树的叶子,这是文件。 – MrFox

+0

@MFFox不,我想要所有的孩子,孙子们等文件夹。 –

回答

0

我不确定那是什么语言,但如果我不得不猜测,那是因为您在文件而不是文件夹上调用了“GetFolderChildren”。您可能的意思是做相反的事情,也就是说,为每个文件夹调用“GetFolderChildren”,并简单地添加每个存在的资源。

另外,如果你不打算使用它,我会建议不要使用返回的东西。效果似乎是修改列表完成的。如果你需要最后一次调用返回一个JsonResult对象,那么有两个方法,父对象调用inner方法,父对象返回JsonResult对象(避免不必要的性能损失)。