首页 > 解决方案 > 在 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;
        }

我的问题?我在哪里实施该服务,以便在我创建的每个剃须刀页面中加载菜单?

标签: asp.netasp.net-core

解决方案


推荐阅读