ABP 4.0 Blazor - 覆盖身份视图

ABP 4.0 Blazor - Overriding Identity Views

我正在使用 Blazor UI 试用 ABP 4.0,并希望覆盖用户管理的内置视图。 检查源代码,我发现 UserManagement.razor 文件的路径为“/identity/users”——这与我要覆盖的视图相匹配。

我(我相信)遵循了以下列出的步骤:https://docs.abp.io/en/abp/latest/UI/Blazor/Customization-Overriding-Components。但是,当 运行 站点时,我仍然获得标准的内置用户列表。

Pages/Identity/UserManagement.razor(在我的 wwwroot 文件夹中):

@inherits Volo.Abp.Identity.Blazor.Pages.Identity.UserManagement
<h2>This is not the standard page</h2>

Pages/Identity/UserManagement.razor.cs

using Volo.Abp.DependencyInjection;

namespace BlazorDemo.Blazor.Pages.Identity
{
    [ExposeServices(typeof(UserManagement))]
    [Dependency(ReplaceServices = true)]
    public partial class UserManagement
    {
    }
}

我是不是漏掉了什么?

为您自己的组件使用不同的名称,例如 MyUserManagement.razor。否则编译器无法区分classes。例如,

using Volo.Abp.DependencyInjection;

namespace BlazorDemo.Blazor.Pages.Identity
{
    [ExposeServices(typeof(UserManagement))] //MUST BE Volo.Abp.Identity.Blazor.Pages.Identity.UserManagement
    [Dependency(ReplaceServices = true)]
    public partial class UserManagement
    {
    }
}

在这里,ExposeServices 暴露自己(您的 class)而不是 Volo.Abp.Identity.Blazor.Pages.Identity.UserManagement。如果你将你的组件重命名为 MyUserManagement 那么你就不会犯这样的错误:)