From 2fc165f38bb7cfe6a1728aa425c216e32fa631b6 Mon Sep 17 00:00:00 2001 From: gdlcf88 Date: Tue, 14 Jun 2022 20:38:42 +0800 Subject: [PATCH] Fix https://github.com/abpframework/abp/issues/12978 --- .../MyMenuViewModelProvider.cs | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 samples/EShopSample/aspnet-core/src/EShopSample.Web/MyMenuViewModelProvider.cs diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/MyMenuViewModelProvider.cs b/samples/EShopSample/aspnet-core/src/EShopSample.Web/MyMenuViewModelProvider.cs new file mode 100644 index 00000000..4e36b9f8 --- /dev/null +++ b/samples/EShopSample/aspnet-core/src/EShopSample.Web/MyMenuViewModelProvider.cs @@ -0,0 +1,34 @@ +using System.Collections.Generic; +using Volo.Abp.AspNetCore.Mvc.UI.Layout; +using Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite; +using Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite.Themes.LeptonXLite.Components.Menu; +using Volo.Abp.DependencyInjection; +using Volo.Abp.ObjectMapping; +using Volo.Abp.UI.Navigation; + +namespace EShopSample.Web; + +[Dependency(ReplaceServices = true)] +[ExposeServices(typeof(MenuViewModelProvider))] +public class MyMenuViewModelProvider : MenuViewModelProvider +{ + public MyMenuViewModelProvider(IMenuManager menuManager, IPageLayout pageLayout, + IObjectMapper objectMapper) : base(menuManager, pageLayout, + objectMapper) + { + } + + protected override bool SetActiveMenuItems(IList items, string activeMenuItemName) + { + foreach (var item in items) + { + if (SetActiveMenuItems(item.Items, activeMenuItemName) || item.MenuItem.Name == activeMenuItemName) + { + item.IsActive = true; + return true; + } + } + + return false; + } +} \ No newline at end of file