Guest User

Untitled

a guest
Mar 22nd, 2018
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.43 KB | None | 0 0
  1. public ActionResult Index()
  2. {
  3.  
  4. List<MenuItem> allMenu = new List<MenuItem>
  5. {
  6. new MenuItem {Id=1,Name="Parent 1", ParentId=0},
  7. new MenuItem {Id=2,Name="child 1", ParentId=1},
  8. new MenuItem {Id=3,Name="child 2", ParentId=1},
  9. new MenuItem {Id=4,Name="child 3", ParentId=1},
  10. new MenuItem {Id=5,Name="Parent 2", ParentId=0},
  11. new MenuItem {Id=6,Name="child 4", ParentId=4}
  12. };
  13.  
  14.  
  15. List<MenuItem> mi = allMenu
  16. .Where(e => e.ParentId == 0) /* grab only the root parent nodes */
  17. .Select(e => new MenuItem
  18. {
  19. Id = e.Id,
  20. Name = e.Name,
  21. ParentId = e.ParentId,
  22. Children = allMenu.Where(x => x.ParentId == e.Id).ToList()
  23. }).ToList();
  24.  
  25.  
  26. ViewBag.menusList = mi;
  27.  
  28. return View();
  29. }
  30.  
  31. public class MenuItem
  32. {
  33. public int Id { get; set; }
  34. public string Name { get; set; }
  35. public int ParentId { get; set; }
  36. public virtual List<MenuItem> Children { get; set; }
  37. }
  38.  
  39. @helper ShowTree(List<Scaffolding.Controllers.MenuItem> menusList)
  40. {
  41. <ul>
  42. @foreach (var item in menusList)
  43. {
  44. <li>
  45. <span>@item.Name</span>
  46. @if (item.Children != null && item.Children.Any())
  47. {
  48. @ShowTree(item.Children)
  49. }
  50. </li>
  51. }
  52. </ul>
  53. }
  54.  
  55. @{
  56. var menuList = ViewBag.menusList as List<Scaffolding.Controllers.MenuItem>;
  57. @ShowTree(menuList);
  58. }
Add Comment
Please, Sign In to add comment