diff --git a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/BreadcrumbItem.cs b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/BreadcrumbItem.cs
new file mode 100644
index 0000000000..03943f47d7
--- /dev/null
+++ b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/BreadcrumbItem.cs
@@ -0,0 +1,18 @@
+namespace Volo.Abp.AspNetCore.Components.WebAssembly
+{
+ public class BreadcrumbItem
+ {
+ public string Text { get; set; }
+
+ public string Icon { get; set; }
+
+ public string Url { get; set; }
+
+ public BreadcrumbItem(string text, string url = null, string icon = null)
+ {
+ Text = text;
+ Url = url;
+ Icon = icon;
+ }
+ }
+}
diff --git a/framework/src/Volo.Abp.BlazoriseUI/Components/PageHeader.razor b/framework/src/Volo.Abp.BlazoriseUI/Components/PageHeader.razor
new file mode 100644
index 0000000000..a584038bfd
--- /dev/null
+++ b/framework/src/Volo.Abp.BlazoriseUI/Components/PageHeader.razor
@@ -0,0 +1,35 @@
+
+
+
+
+ @if (BreadcrumbItems.Any())
+ {
+
+
+ @if (BreadcrumbShowHome)
+ {
+
+
+
+ }
+ @foreach (var item in BreadcrumbItems)
+ {
+
+
+ @if (!string.IsNullOrEmpty(item.Icon))
+ {
+
+ }
+ @item.Text
+
+
+ }
+
+
+ }
+
+
+ @ChildContent
+
+
+
\ No newline at end of file
diff --git a/framework/src/Volo.Abp.BlazoriseUI/Components/PageHeader.razor.cs b/framework/src/Volo.Abp.BlazoriseUI/Components/PageHeader.razor.cs
new file mode 100644
index 0000000000..c3b75712ef
--- /dev/null
+++ b/framework/src/Volo.Abp.BlazoriseUI/Components/PageHeader.razor.cs
@@ -0,0 +1,34 @@
+using System.Collections.Generic;
+using Microsoft.AspNetCore.Components;
+using Volo.Abp.AspNetCore.Components.WebAssembly;
+
+namespace Volo.Abp.BlazoriseUI.Components
+{
+ public partial class PageHeader : ComponentBase
+ {
+ [Parameter]
+ public string Title { get; set; }
+
+ [Parameter]
+ public bool BreadcrumbShowHome { get; set; } = true;
+
+ [Parameter]
+ public bool BreadcrumbShowCurrent { get; set; } = true;
+
+ [Parameter]
+ public RenderFragment ChildContent { get; set; }
+
+ protected List BreadcrumbItems { get; set; }
+
+ public PageHeader()
+ {
+ BreadcrumbItems = new List();
+ }
+
+ public void AddBreadcrumbItem(string text, string url = null, string icon = null)
+ {
+ BreadcrumbItems.Add(new BreadcrumbItem(text, url, icon));
+ StateHasChanged();
+ }
+ }
+}