You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
abp/docs/zh-Hans/UI/AspNetCore/Custom-Setting-Page.md

2.0 KiB

自定义设置页面

一些模块内置了设置页面,你也可以在项目中添加自己的设置页面.

创建视图组件

Components 目录下创建 MySettingGroup 文件夹, 添加一个名为 MySettingGroupViewComponent 的视图组件:

MySettingGroupViewComponent

打开 MySettingGroupViewComponent.cs 替换为以下内容:

public class MySettingGroupViewComponent : AbpViewComponent
{
    public virtual IViewComponentResult Invoke()
    {
        return View("~/Components/MySettingGroup/Default.cshtml");
    }
}

你还可以使用 InvokeAsync 方法,在这个示例中我们使用 Invoke 方法.

Default.cshtml

MySettingGroup 目录下创建 Default.cshtml 文件.

打开 Default.cshtml 替换为以下内容:

<div>
  <p>My setting group page</p>
</div>

BookStoreSettingPageContributor

Settings 目录下创建 BookStoreSettingPageContributor.cs 文件.

BookStoreSettingPageContributor

文件内容如下:

public class BookStoreSettingPageContributor : ISettingPageContributor
{
    public Task ConfigureAsync(SettingPageCreationContext context)
    {
        context.Groups.Add(
            new SettingPageGroup(
                "Volo.Abp.MySettingGroup",
                "MySettingGroup",
                typeof(MySettingGroupViewComponent)
            )
        );

        return Task.CompletedTask;
    }

    public Task<bool> CheckPermissionsAsync(SettingPageCreationContext context)
    {
        // You can check the permissions here
        return Task.FromResult(true);
    }
}

打开 BookStoreWebModule.cs 文件添加以下代码:

Configure<SettingManagementPageOptions>(options =>
{
    options.Contributors.Add(new BookStoreSettingPageContributor());
});

运行应用程序

导航到 /SettingManagement 路由查看更改:

Custom Settings Tab