diff --git a/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/AbpDynamicComponentOptions.cs b/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/AbpDynamicComponentOptions.cs
new file mode 100644
index 0000000000..e7c3178f1b
--- /dev/null
+++ b/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/AbpDynamicComponentOptions.cs
@@ -0,0 +1,19 @@
+using System;
+using System.Collections.Generic;
+using JetBrains.Annotations;
+
+namespace Volo.Abp.AspNetCore.Components.Web.Theming;
+
+public class AbpDynamicComponentOptions
+{
+ ///
+ /// Used to define components that renders in the layout
+ ///
+ [NotNull]
+ public Dictionary?> Components { get; set; }
+
+ public AbpDynamicComponentOptions()
+ {
+ Components = new Dictionary?>();
+ }
+}
\ No newline at end of file
diff --git a/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Components/AbpDynamicComponents.razor b/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Components/AbpDynamicComponents.razor
new file mode 100644
index 0000000000..a0773109dc
--- /dev/null
+++ b/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Components/AbpDynamicComponents.razor
@@ -0,0 +1,7 @@
+@if (AbpDynamicComponentOptions.Value.Components.Any())
+{
+ foreach (var (componentType, parameters) in AbpDynamicComponentOptions.Value.Components)
+ {
+
+ }
+}
\ No newline at end of file
diff --git a/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Components/AbpDynamicComponents.razor.cs b/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Components/AbpDynamicComponents.razor.cs
new file mode 100644
index 0000000000..3784c6be22
--- /dev/null
+++ b/framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Components/AbpDynamicComponents.razor.cs
@@ -0,0 +1,10 @@
+using Microsoft.AspNetCore.Components;
+using Microsoft.Extensions.Options;
+
+namespace Volo.Abp.AspNetCore.Components.Web.Theming.Components;
+
+public partial class AbpDynamicComponents : ComponentBase
+{
+ [Inject]
+ protected IOptions AbpDynamicComponentOptions { get; set; }
+}
\ No newline at end of file
diff --git a/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.BasicTheme/Themes/Basic/MainLayout.razor b/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.BasicTheme/Themes/Basic/MainLayout.razor
index 82c7cc0fc7..794aa8af1b 100644
--- a/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.BasicTheme/Themes/Basic/MainLayout.razor
+++ b/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.BasicTheme/Themes/Basic/MainLayout.razor
@@ -1,4 +1,5 @@
-@inherits LayoutComponentBase
+@using Volo.Abp.AspNetCore.Components.Web.Theming.Components;
+@inherits LayoutComponentBase