2017-11-20 14 views
0

ASP.NET MVC-5のブートストラップを使用してサブメニューを含む動的ナビゲーションバーを作成しました。ここではすべての項目がメニューとサブメニューフォームデータベースになります。しかし、私は既存のサブメニューの下にさらにサブメニューを作成する必要があります。私はこのコードを使用しています。私の欲望のサブメニューは作成されましたが、スパンは機能しません。私はドロップダウンスタイルのようにして、2つ目のサブメニューバーをプルダウンしたりオフにしたりしたいと思っています。最初のスピンはうまくいきますが、2番目のスピンは機能していませ どうすればいいですか? ありがとうございます。サブメニューの作成ASP.NET MVC -5で作業中のブートストラップによるメニューの下に

私はこのコードを使用しています。私はrendermenuと呼ばれるヘルパークラスを使用し

<div class="user text-center"> 
    <h4 class="user-name"></h4> 
</div> 

<nav class="navigation"> 
    <ul class="list-unstyled"> 
     @{ 
       for (int i = 0; i < menuList.Count; i++) 
       { 
        if (menuList[i].PARENT_MENU_ITEM_ID.Equals("0")) 
        { 
         <li class="has-submenu"> 
          <a href="#"><i class="@menuList[i].MENU_ICON"></i> <span class="nav-label">@menuList[i].MENU_DESCRIPTION</span></a> 
          <ul class="list-unstyled"> 

           @for (int j = 0; j < menuList.Count; j++) 
           { 
            if (menuList[j].PARENT_MENU_ITEM_ID.Equals(menuList[i].MENU_ITEM_ID)) 
            { 
             <li class="has-submenu"> 
              <a href="#" ><i class="@menuList[i].MENU_ICON"></i> <span class="nav-label">@menuList[j].MENU_DESCRIPTION</span></a> 
              <ul> 
               @for (int k = 0; k < menuList.Count; k++) 
               { 

                if (menuList[k].PARENT_MENU_ITEM_ID.Equals(menuList[j].MENU_ITEM_ID)) 
                { 
                 <li > 
                  <a href="/@menuList[k].MENU_URL">@menuList[k].MENU_DESCRIPTION</a> 
                 </li> 
                } 
               } 

              </ul> 
             </li> 
            } 
           } 


          </ul> 
         </li> 
        } 
       } 
      } 

     </ul> 
    </nav> 

</aside> 

答えて

0

。私はd dbからリストを作成します。 2レベルのメニューでうまく動作します。私のコードは次のようになります。

if (Request.IsAuthenticated) 
    { 
     <ul class="sidebar-menu"> 
      <li class="header">MAIN NAVIGATION</li> 
      @foreach (var mp in menuList.Where(p => p.ParentPermission == 0)) 
      { 
       <li [email protected] class="treeview"> 
        <a href="#" class="js-sub-menu-toggle"> 
         <i class="fa @mp.IconClass fa-fw"></i><span class="text">@mp.PermissionDesc</span> 
         <i class="toggle-icon fa @mp.ToggleIconClass pull-right"></i> 
        </a> 

        @if (menuList.Count(p => p.ParentPermission == mp.PermissionId) > 0) 
       { 
       @:<ul class="treeview-menu @mp.IsopenClass"> 
    } 

        @RenderMenuItem(menuList, mp) 

        @if (menuList.Count(p => p.ParentPermission == mp.PermissionId) > 0) 
       { 
       @:</ul> 
       } 

       </li> 
      } 
     </ul> 
     @helper RenderMenuItem(List<MenuViewModel> menuList, MenuViewModel mi) 
    { 
    foreach (var cp in menuList.Where(p => p.ParentPermission == mi.PermissionId)) 
    { 
      @:<li> 

       <a href="@Url.Action(@cp.ActionName, @cp.ControllerName)"> <span class="text">@cp.PermissionDesc</span> </a> 
     if (menuList.Count(p => p.ParentPermission == cp.PermissionId) > 0) 
     { 
     @:<ul class="treeview-menu "> 
      } 

     @RenderMenuItem(menuList, cp) 
     if (menuList.Count(p => p.ParentPermission == cp.PermissionId) > 0) 
     { 
     @:</ul> 
      } 
      else 
      { 
     @:</li> 
     } 
    } 
    } 
      } 

とiが同様のモデルがあります:

public class MenuViewModel 
{ 
    public string URL; 

    public decimal PermissionId { get; set; } 

    public int RoleId { get; set; } 
    public string PermissionDesc { get; set; } 
    public string ActionName { get; set; } 
    public string ControllerName { get; set; } 
    public int ParentPermission { get; set; } 
    public string IconClass { get; set; } 
    public string IsopenClass { get; set; } 
    public string ToggleIconClass { get; set; } 

} 
関連する問題