如何使用 abp.io 在 ui 中显示 ExtraProperties
How to Display the ExtraProperties in the ui using abp.io
我正在使用 abp.io 社区版 3.3.1 和 blazor
我正在尝试为用户 (identityuserdto) 添加新的 属性,我想将其显示在创建和编辑表单以及数据 table 中,为此我遵循了此文档
https://docs.abp.io/en/commercial/latest/guides/module-entity-extensions
因为找不到文档https://docs.abp.io/en/latest/Module-Entity-Extensions。
这是我的情况枚举
Domain.Shared
namespace University.Situation
{
public enum SituationType
{
Student = 1,
AssistantProfessor,
Professor
}
}
和我的 ModuleExtensionConfigurator
public static void Configure()
{
OneTimeRunner.Run(() =>
{
ObjectExtensionManager.Instance.Modules()
.ConfigureIdentity(identity =>
{
identity.ConfigureUser(user =>
{
user.AddOrUpdateProperty<SituationType>(
"Situation"
);
});
});
});
OneTimeRunner.Run(() =>
{
ConfigureExistingProperties();
ConfigureExtraProperties();
});
当我执行我的宿主项目时,我可以大摇大摆地看到我的额外属性,但是当我执行我的 blazor 项目时,我的字段不是
出现在创建和编辑表单以及数据中 table.
所以我怎么能手动添加它们,因为我猜只有商业版本可以自动添加额外的属性?
提前致谢。
如果您查看 this documentation and for example this 问题(来自我:-|),您会发现您需要从要覆盖的页面或组件继承。
一方面,您有数据库层和域层,它们需要额外的 属性/ 属性。您的问题显示了域层的代码。
对于 EF Core,您需要自定义在 *.EntityFrameworkCore 项目中找到的 *EfCoreEntityExtensionMappings.cs。
现在,对于应用程序和服务,您需要转到 *.Application.Contracts 项目并将代码添加到 *DtoExtensions.cs(class 包含描述如何执行的注释那个)。
最后创建一个新页面(*.Blazor 项目),这将是默认页面的自定义实现。
从默认页面复制所有内容。
之后确保您从默认页面继承。
现在根据您的需要编辑代码。
由于我在阅读文档时遇到困难,所以我想解释一下我是如何做到的。
如果您想自定义租户管理页面,流程为:
创建类似“MyTenantManagement.razor”的页面
从here中获取默认文件内容并粘贴到“MyTenantManagement.razor”
将@inherits 行替换为:
@inherits Volo.Abp.TenantManagement.Blazor.Pages.TenantManagement.TenantManagement
删除@page 东西(这样路由器就不会混淆
添加可能遗漏的用法(我有,所以这可能是必需的步骤。
文件的上半部分可能如下所示:
Abp.DependencyInjection
@using Microsoft.AspNetCore.Authorization
@using Volo.Abp.FeatureManagement.Blazor.Components
@using Volo.Abp.TenantManagement.Localization
@using Volo.Abp.TenantManagement
@using TT2Masterz.Localization
@using Microsoft.Extensions.Localization
@inherits Volo.Abp.TenantManagement.Blazor.Pages.TenantManagement.TenantManagement
@attribute [Authorize(TenantManagementPermissions.Tenants.Default)]
@attribute [ExposeServices(typeof(Volo.Abp.TenantManagement.Blazor.Pages.TenantManagement.TenantManagement))]
@attribute [Dependency(ReplaceServices = true)]
@inject AbpBlazorMessageLocalizerHelper<AbpTenantManagementResource> LH
@inject IStringLocalizer<TT2MasterzResource> LT
<h2>This is my custom tenant managemant page</h2>
希望对您有所帮助:)
我正在使用 abp.io 社区版 3.3.1 和 blazor 我正在尝试为用户 (identityuserdto) 添加新的 属性,我想将其显示在创建和编辑表单以及数据 table 中,为此我遵循了此文档 https://docs.abp.io/en/commercial/latest/guides/module-entity-extensions
因为找不到文档https://docs.abp.io/en/latest/Module-Entity-Extensions。
这是我的情况枚举 Domain.Shared
namespace University.Situation
{
public enum SituationType
{
Student = 1,
AssistantProfessor,
Professor
}
}
和我的 ModuleExtensionConfigurator
public static void Configure()
{
OneTimeRunner.Run(() =>
{
ObjectExtensionManager.Instance.Modules()
.ConfigureIdentity(identity =>
{
identity.ConfigureUser(user =>
{
user.AddOrUpdateProperty<SituationType>(
"Situation"
);
});
});
});
OneTimeRunner.Run(() =>
{
ConfigureExistingProperties();
ConfigureExtraProperties();
});
当我执行我的宿主项目时,我可以大摇大摆地看到我的额外属性,但是当我执行我的 blazor 项目时,我的字段不是 出现在创建和编辑表单以及数据中 table.
所以我怎么能手动添加它们,因为我猜只有商业版本可以自动添加额外的属性?
提前致谢。
如果您查看 this documentation and for example this 问题(来自我:-|),您会发现您需要从要覆盖的页面或组件继承。
一方面,您有数据库层和域层,它们需要额外的 属性/ 属性。您的问题显示了域层的代码。
对于 EF Core,您需要自定义在 *.EntityFrameworkCore 项目中找到的 *EfCoreEntityExtensionMappings.cs。
现在,对于应用程序和服务,您需要转到 *.Application.Contracts 项目并将代码添加到 *DtoExtensions.cs(class 包含描述如何执行的注释那个)。
最后创建一个新页面(*.Blazor 项目),这将是默认页面的自定义实现。
从默认页面复制所有内容。
之后确保您从默认页面继承。
现在根据您的需要编辑代码。
由于我在阅读文档时遇到困难,所以我想解释一下我是如何做到的。 如果您想自定义租户管理页面,流程为:
创建类似“MyTenantManagement.razor”的页面
从here中获取默认文件内容并粘贴到“MyTenantManagement.razor”
将@inherits 行替换为:
@inherits Volo.Abp.TenantManagement.Blazor.Pages.TenantManagement.TenantManagement
删除@page 东西(这样路由器就不会混淆
添加可能遗漏的用法(我有,所以这可能是必需的步骤。
文件的上半部分可能如下所示:
Abp.DependencyInjection
@using Microsoft.AspNetCore.Authorization
@using Volo.Abp.FeatureManagement.Blazor.Components
@using Volo.Abp.TenantManagement.Localization
@using Volo.Abp.TenantManagement
@using TT2Masterz.Localization
@using Microsoft.Extensions.Localization
@inherits Volo.Abp.TenantManagement.Blazor.Pages.TenantManagement.TenantManagement
@attribute [Authorize(TenantManagementPermissions.Tenants.Default)]
@attribute [ExposeServices(typeof(Volo.Abp.TenantManagement.Blazor.Pages.TenantManagement.TenantManagement))]
@attribute [Dependency(ReplaceServices = true)]
@inject AbpBlazorMessageLocalizerHelper<AbpTenantManagementResource> LH
@inject IStringLocalizer<TT2MasterzResource> LT
<h2>This is my custom tenant managemant page</h2>
希望对您有所帮助:)