diff --git a/framework/src/Volo.Abp.UI.Navigation/Volo/Abp/Ui/Navigation/ApplicationMenu.cs b/framework/src/Volo.Abp.UI.Navigation/Volo/Abp/Ui/Navigation/ApplicationMenu.cs
index 976552a6ec..1a69de7f2c 100644
--- a/framework/src/Volo.Abp.UI.Navigation/Volo/Abp/Ui/Navigation/ApplicationMenu.cs
+++ b/framework/src/Volo.Abp.UI.Navigation/Volo/Abp/Ui/Navigation/ApplicationMenu.cs
@@ -1,4 +1,6 @@
+using System.Collections.Generic;
using JetBrains.Annotations;
+using Volo.Abp.Data;
using Volo.Abp.UI.Navigation;
namespace Volo.Abp.UI.Navigation;
@@ -31,10 +33,9 @@ public class ApplicationMenu : IHasMenuItems
///
/// Can be used to store a custom object related to this menu.
- /// TODO: Convert to dictionary!
///
- [CanBeNull]
- public object CustomData { get; set; }
+ [NotNull]
+ public Dictionary CustomData { get; } = new();
public ApplicationMenu(
[NotNull] string name,
@@ -59,6 +60,16 @@ public class ApplicationMenu : IHasMenuItems
return this;
}
+ ///
+ /// Adds a custom data item to with given key & value.
+ ///
+ /// This itself.
+ public ApplicationMenu WithCustomData(string key, object value)
+ {
+ CustomData[key] = value;
+ return this;
+ }
+
public override string ToString()
{
return $"[ApplicationMenu] Name = {Name}";
diff --git a/framework/src/Volo.Abp.UI.Navigation/Volo/Abp/Ui/Navigation/ApplicationMenuItem.cs b/framework/src/Volo.Abp.UI.Navigation/Volo/Abp/Ui/Navigation/ApplicationMenuItem.cs
index 1f5d26d7bb..32241ba7ac 100644
--- a/framework/src/Volo.Abp.UI.Navigation/Volo/Abp/Ui/Navigation/ApplicationMenuItem.cs
+++ b/framework/src/Volo.Abp.UI.Navigation/Volo/Abp/Ui/Navigation/ApplicationMenuItem.cs
@@ -79,7 +79,8 @@ public class ApplicationMenuItem : IHasMenuItems, IHasSimpleStateCheckers
/// Can be used to store a custom object related to this menu item. Optional.
///
- public object CustomData { get; set; }
+ [NotNull]
+ public Dictionary CustomData { get; } = new();
///
/// Can be used to render the element with a specific Id for DOM selections.
@@ -97,7 +98,6 @@ public class ApplicationMenuItem : IHasMenuItems, IHasSimpleStateCheckers
+ /// Adds a custom data item to with given key & value.
+ ///
+ /// This itself.
+ public ApplicationMenuItem WithCustomData(string key, object value)
+ {
+ CustomData[key] = value;
+ return this;
+ }
+
private string GetDefaultElementId()
{
return "MenuItem_" + Name;
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 845db61425..2753816af0 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
@@ -58,7 +58,6 @@ public class CmsKitPublicMenuContributor : IMenuContributor
menuItem.Url,
menuItem.Icon,
menuItem.Order,
- customData: null,
menuItem.Target,
menuItem.ElementId,
menuItem.CssClass