asp.net - 在 asp .NET Core 中的每个剃须刀页面上加载菜单结构
问题描述
用户身份验证后,我应该根据用户的角色更改用户菜单。
为此,我创建了一个服务来获取用户期望看到的菜单:
public List<MenuStructure> LoadCompleteMenuRole(string role)
{
List<MenuStructure> resultList = null;
var menuHeaders = LoadMenuHeadersForTheGivenRole(role);
if (menuHeaders != null && menuHeaders.Count > 0)
{
resultList = new List<MenuStructure>();
foreach (var menuHeader in menuHeaders)
{
var menuStructure = new MenuStructure
{
MenuName = menuHeader.HeaderName,
Caption = menuHeader.Caption
};
var menuDetails = LoadMenuDetailsForTheGivenHeader(menuHeader.Id);
if (menuDetails != null && menuDetails.Count > 0)
{
menuStructure.MenuElements = new List<MenuElement>();
foreach (var menuDetail in menuDetails)
{
var menuElement = new MenuElement
{
ElementName = menuDetail.DetailName,
ElementCaption = menuDetail.Caption,
Destination = menuDetail.Destination
};
menuStructure.MenuElements.Add(menuElement);
}
}
resultList.Add(menuStructure);
}
}
return resultList;
}
我的问题?我在哪里实施该服务,以便在我创建的每个剃须刀页面中加载菜单?
解决方案
推荐阅读
- excel - 从 xslx golang 中检索 CellRange
- docker - Docker 容器在 `docker start` 上立即退出
- javascript - const errorDetails = { message: err.message, status: err.status, stackHighlighted: err.stack.replace(/[a-z_-\d]+.js:\d+:\d+/gi, '$&') };
- hyperledger-fabric - 在 fabric-samples 中使用 couchdb 选项时,无法在 Hyperledger Fabric 1.3 中实例化链代码
- ios - 运行命令 shell 脚本 [cp] embed pods framework' 0.2 seconds Command PhaseScriptExecution failed with a nonzero exit code
- jasper-reports - 应用条件格式时子报表周围出现不需要的边框
- python - POST 请求方法在 Django Rest 框架中不起作用
- node.js - 如何使用带有 mocha 的 await 和 ESM 获取 selenium 驱动程序?
- java - 使用表达式委托而不是 Java 类有什么好处?
- dart - 在 Flutter 中定义 const 级别的类