>

와이즈 비즈가있다  로그인하면 사용자가 Login page 하는 곳  어디 Home Page  문제는 사용자가 dynamic menu 중 하나를 클릭하면   menulink  보이지 않는다

이것은 loaded menu 안에 코드를 작성했기 때문입니다.  the Index action 의 .

내 질문은 내가 Home controller 를 어디에 써야 하는가이다  메뉴 링크를 클릭하면 액세스 할 수 있습니다.

_Layout.cshtml 파일이로드 된 파일

logic for dynamic menu

동적 메뉴에 대한 논리가 여기로옵니다

@model SMS.Models.ViewModel.DashboardVM
 @if (Model != null && Model.MenuParentList.Count > 0)
            {
                <!-- Sidebar Menu -->
                <ul class="sidebar-menu">
                    <li class="header">MAIN NAVIGATION</li>
                    <li class="active">
                        <a href="#">
                            <i class="fa fa-dashboard"></i> <span>Dashboard</span>
                        </a>
                    </li>
                    @foreach (var parentItem in Model.MenuParentList)
                    {
                        <li class="treeview">
                            <a href="#">
                                <i class="fa fa-th"></i>
                                <span>@parentItem.MenuParentName</span>
                                <i class="fa fa-angle-left pull-right"></i>
                            </a>
                            <ul class="treeview-menu">
                                @Html.Partial("_MenuParent", Model.MenuList.Where(x => x.ParentID == parentItem.MenuParentID))
                            </ul>
                        </li>
                    }                       
                </ul> 
            }     

public ActionResult Index() { var _dashboardVM = new DashboardVM { User = _employee.Users.FirstOrDefault(), MenuParentList=_db.Menus .Where(x => _parentList.Contains(x.Id)) .Select(x => new SMS.Models.ViewModel.DashboardVM.MenuParent { MenuParentID = x.Id, MenuParentName = x.MenuName }) .OrderBy(x=>x.MenuParentID) .ToList(), MenuList=_employee.Designation.Role.MenuRoles .Select(x=>x.Menu) .ToList() }; }

  • 답변 # 1

    별도의 [ChildActionOnly] 만들기  메뉴를 생성하고 모든 페이지에서 사용할 수 있도록 레이아웃 페이지에서 메뉴를 호출하는 메소드

    [ChildActionOnly]
    public ActionResult Menu()
    {
      var model = new DashboardVM
      {
         ....
      }
      return PartialView("_Menu", model);
    }
    
    

    _Menu.cshtml 를 만들  HTML을 생성하는 부분보기

    @model DashboardVM
    ....
    
    

    그런 다음 레이아웃에서 @model SMS.Models.ViewModel.DashboardVM 를 제거하십시오.  (해당 모델이 레이아웃에 사용 된 모든 모델의 기본 클래스가 아닌 경우 레이아웃에 모델이 없어야 함)

    @Html.Action("Menu", yourControllerName)
    
    
    Menu 를 호출합니다

     메소드를 반환하고 부분 뷰를 레이아웃에 삽입합니다.

  • 이전 mysql - 내 SQL 코드의 결함은 어디에 있습니까?
  • 다음 아이폰에서 이메일을 보내려면 어떻게해야합니까?