_TopMenu.cshtml 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. @using Abp.Collections.Extensions
  2. @using ShwasherSys.Views
  3. @model ShwasherSys.Models.Layout.TopMenuViewModel
  4. @{
  5. var calculateMenuUrl = new Func<string, string>((url) =>
  6. {
  7. if (string.IsNullOrEmpty(url))
  8. {
  9. return ApplicationPath;
  10. }
  11. if (UrlChecker.IsRooted(url))
  12. {
  13. return url;
  14. }
  15. return ApplicationPath + url;
  16. });
  17. }
  18. @foreach (var menuItem in Model.MainMenu.Items)
  19. {
  20. <li class="@(Model.ActiveMenuItemName == menuItem.Name ? "active" : "")">
  21. @if (menuItem.Items.IsNullOrEmpty())
  22. {
  23. <a href="@calculateMenuUrl(menuItem.Url)">
  24. @if (!string.IsNullOrWhiteSpace(menuItem.Icon))
  25. {
  26. <i class="@menuItem.Icon"></i>
  27. }
  28. @menuItem.DisplayName
  29. </a>
  30. }
  31. else
  32. {
  33. <a href="" data-toggle="dropdown">
  34. @if (!string.IsNullOrWhiteSpace(menuItem.Icon))
  35. {
  36. <i class="@menuItem.Icon"></i>
  37. }
  38. @menuItem.DisplayName
  39. </a>
  40. <ul class="dropdown-menu">
  41. @foreach (var subMenuItem in menuItem.Items)
  42. {
  43. <li>
  44. <a href="@calculateMenuUrl(subMenuItem.Url)">
  45. @if (!string.IsNullOrWhiteSpace(subMenuItem.Icon))
  46. {
  47. <i class="@subMenuItem.Icon"></i>
  48. }
  49. @subMenuItem.DisplayName
  50. </a>
  51. </li>
  52. }
  53. </ul>
  54. }
  55. </li>
  56. }