Browse Source

Add custom MVC setting page document

pull/8908/head
liangshiwei 6 years ago
parent
commit
aab3dea39f
  1. 82
      docs/en/UI/AspNetCore/Custom-Setting-Page.md
  2. BIN
      docs/en/images/my-setting-group-page-contributor.png
  3. BIN
      docs/en/images/my-setting-group-ui.png
  4. BIN
      docs/en/images/my-setting-group-view-component.png
  5. 82
      docs/zh-Hans/UI/AspNetCore/Custom-Setting-Page.md
  6. BIN
      docs/zh-Hans/images/my-setting-group-page-contributor.png
  7. BIN
      docs/zh-Hans/images/my-setting-group-ui.png
  8. BIN
      docs/zh-Hans/images/my-setting-group-view-component.png

82
docs/en/UI/AspNetCore/Custom-Setting-Page.md

@ -0,0 +1,82 @@
# Custom Setting Page
There are several settings tabs from different modules. You can add a custom setting page to your project.
### Create a setting View Component
Create `MySettingGroup` folder under the `Components` folder. Add a new view component. Name it as `MySettingGroupViewComponent`:
![MySettingGroupViewComponent](../../images/my-setting-group-view-component.png)
Open the `MySettingGroupViewComponent.cs` and change the whole content as shown below:
```csharp
public class MySettingGroupViewComponent : AbpViewComponent
{
public virtual IViewComponentResult Invoke()
{
return View("~/Components/MySettingGroup/Default.cshtml");
}
}
```
> You can also use the `InvokeAsync` method, In this example, we use the `Invoke` method.
### Default.cshtml
Create `Default.cshtml` file under the `MySettingGroup` folder.
Open the `Default.cshtml` and change the whole content as shown below:
```html
<div>
<p>My setting group page</p>
</div>
```
### BookStoreSettingPageContributor
Create an `BookStoreSettingPageContributor.cs` file under the `Settings` folder:
![BookStoreSettingPageContributor](../../images/my-setting-group-page-contributor.png)
The content of the file is shown below:
```csharp
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);
}
}
```
Open the `BookStoreWebModule.cs` file and add the following code:
```csharp
Configure<SettingManagementPageOptions>(options =>
{
options.Contributors.Add(new BookStoreSettingPageContributor());
});
```
### Run the Application
Navigate to `/SettingManagement` route to see the changes:
![Custom Settings Tab](../../images/my-setting-group-ui.png)

BIN
docs/en/images/my-setting-group-page-contributor.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

BIN
docs/en/images/my-setting-group-ui.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

BIN
docs/en/images/my-setting-group-view-component.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

82
docs/zh-Hans/UI/AspNetCore/Custom-Setting-Page.md

@ -0,0 +1,82 @@
# 自定义设置页面
一些模块内置了设置页面,你也可以在项目中添加自己的设置页面.
### 创建视图组件
在 `Components` 目录下创建 `MySettingGroup` 文件夹, 添加一个名为 `MySettingGroupViewComponent` 的视图组件:
![MySettingGroupViewComponent](../../images/my-setting-group-view-component.png)
打开 `MySettingGroupViewComponent.cs` 替换为以下内容:
```csharp
public class MySettingGroupViewComponent : AbpViewComponent
{
public virtual IViewComponentResult Invoke()
{
return View("~/Components/MySettingGroup/Default.cshtml");
}
}
```
> 你还可以使用 `InvokeAsync` 方法,在这个示例中我们使用 `Invoke` 方法.
### Default.cshtml
在 `MySettingGroup` 目录下创建 `Default.cshtml` 文件.
打开 `Default.cshtml` 替换为以下内容:
```html
<div>
<p>My setting group page</p>
</div>
```
### BookStoreSettingPageContributor
在 `Settings` 目录下创建 `BookStoreSettingPageContributor.cs` 文件.
![BookStoreSettingPageContributor](../../images/my-setting-group-page-contributor.png)
文件内容如下:
```csharp
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` 文件添加以下代码:
```csharp
Configure<SettingManagementPageOptions>(options =>
{
options.Contributors.Add(new BookStoreSettingPageContributor());
});
```
### 运行应用程序
导航到 `/SettingManagement` 路由查看更改:
![Custom Settings Tab](../../images/my-setting-group-ui.png)

BIN
docs/zh-Hans/images/my-setting-group-page-contributor.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

BIN
docs/zh-Hans/images/my-setting-group-ui.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

BIN
docs/zh-Hans/images/my-setting-group-view-component.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Loading…
Cancel
Save