*ABP框架----------建导航***重点内容**
前言:先按照我写的步骤一步一步走,不是很好理解,多写几遍自己去慢慢的感悟
1.打开AppPermissions添加导航权限
实例:
// 1级导航权限
public const string Pages_CodeProduct="Pages.CodeProduct";
// 2级导航权限,依次类推
public const string Pages_CodeProduct_Code="Pages.CodeProduct.Code";
2.打开zh-cn-xml 为你的英文导航写上中文名字
//name的名可以自己定义,value的值是前端页面上显示的内容
<text name="CodeProduct" value="代码生成器"/>
//会报个错 因为代码里已经给code字典里赋值了 可以删掉这一行
<text name="Code" value="实体录入"/>
3.打开AppAuthorizationProvider .cs赋予导航权限,找见这个类下的这个方法
public override void SetPermissions(IPermissionDefinitionContext context)
{
//一级标题
var CodeProduct= pages.CreateChildPermission(AppPermissions.Pages_CodeProduct, L("CodeProduct"), multiTenancySides: MultiTenancySides.Host);
//二级标题 必须跟在一级标题后面
CodeProduct.CreateChildPermission(AppPermissions.Pages_CodeProduct_Code, L("Code"), multiTenancySides: MultiTenancySides.Host);
}
4.打开PageNames.cs,为方便建一个内部类
public static class Dashboard
{
//测试一级导航
public const string CodeProduct= "Dashboard.CodeProduct";
//测试二级导航
public const string Code= "Dashboard.Code";
}
5.打开AppNavigationProvider.cs
.AddItem(new MenuItemDefinition(
PageNames.Dashboard.CodeProduct,
L("CodeProduct"),
url: "codeproduct",
icon: "icon-home",
requiredPermissionName: AppPermissions.Pages_CodeProduct
).AddItem(new MenuItemDefinition(
PageNames.Dashboard.Code,
L("Code"),
url: "codeproduct.code",
icon: "icon-layers",
requiredPermissionName: AppPermissions.Pages_CodeProduct_Code
)
)
)
6.打开WEB层下找见App文件夹目录下的app.js里的appModule.config里面写入下面代码
if (abp.auth.hasPermission(‘Pages.CodeProduct.Code’)) {
$stateProvider.state(‘code’, {
url: ‘/code’,
templateUrl: ‘~/App/common/views/code/index.cshtml’
});
}
7.按照第六步里的 templateUrl: ‘~/App/common/views/code/index.cshtml’,路径建一个cshtml页,路径没必要非和我的一样,但是必须要找到自己写的页面所在的位置,在页面里写入成功2字
8.启动vs,进入主页面,找见管理,进入角色,点击操作,进入修改,选择权限。刷新就可以,看到成功。一定要分配好权限。