Merhaba tabloya bir sütun daha ekleyebilirseniz işlemi daha kolay halledebiliriz aslında.

Bunun adını MenuTyp olarak adlandıracağım. Ana menü ise M alt menü ise T şeklinde veri geldiğini kabul ederek kodları yazıyorum.

Controller

Bize sadece CategoryID,CategoryName,ParentID,MenuTyp alanlarından oluşan bir list döndüren model olması gerekiyor.

View

<nav class="header__navigation collapse navbar-toggleable-md" id="structurepress-main-navigation" aria-label="Main Menu">

        <a class="home-icon" href="index.html">
            <i class="fa fa-home"></i>
        </a>

        <ul class="main-navigation js-main-nav" role="menubar">
            @{
                List<PageModel> MPage = Model.Where(x => x.MenuTyp == "M").ToList();

                foreach (var item in MPage)
                {
                    List<PageModel> TPage = Model.Where(x => x.MenuTyp == "T" && x.ParentID == @item.CategoryID).ToList();

                    if (TPage.Count > 0)
                    {
                        <li class="menu-item-has-children @(item.CategoryID == 0 ? "current-menu-item" : "")">
                            <a href="#">@item.CategoryName</a>
                            <ul class="sub-menu">
                                @foreach (var item2 in TPage)
                                {
                                    <li>
                                        <a href="#">@item2.CategoryName</a>
                                    </li>
                                }                                                             
                            </ul>
                        </li>
                    }
                    else
                    {
                        <li>
                            <a href="#">@item.CategoryName</a>
                        </li>
                    }
                }
            }

        </ul>

    </nav>
Burada ana menülerin içinde dolaşarak alt menüleri tespit edip onların içinde dönerek menünün oluşmasını sağladım. Kod tam olarak çalışıyormu test edemedim ama takıldığınız herhangi birşey olursa sorabilirsiniz.