diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Menus/CmsKitPublicMenuContributor.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Menus/CmsKitPublicMenuContributor.cs index 271a0a1ae8..b50d50d895 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Menus/CmsKitPublicMenuContributor.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Menus/CmsKitPublicMenuContributor.cs @@ -34,23 +34,23 @@ namespace Volo.CmsKit.Public.Web.Menus { var applicationMenuItem = CreateApplicationMenuItem(menuItemDto); context.Menu.Items.Add(applicationMenuItem); - AddChildItems(applicationMenuItem, menuItemDto, mainMenu.Items); + AddChildItems(menuItemDto, mainMenu.Items); } } } } - private void AddChildItems(ApplicationMenuItem parent, MenuItemDto menuItem, List source) + private void AddChildItems(MenuItemDto menuItem, List source, ApplicationMenuItem parent = null) { var applicationMenuItem = CreateApplicationMenuItem(menuItem); - parent.Items.Add(applicationMenuItem); + parent?.Items.Add(applicationMenuItem); foreach (var item in source.Where(x => x.ParentId == menuItem.Id && x.IsActive)) { - AddChildItems(applicationMenuItem, item, source); + AddChildItems(item, source, applicationMenuItem); } } - + private ApplicationMenuItem CreateApplicationMenuItem(MenuItemDto menuItem) { return new ApplicationMenuItem(