Menu 2 níveis

Menu de dois níveis em razor Umbraco.

E ai pessoal,

Snippet simples mas muito útil. Menu de dois níveis em razor.

@{ 

var root = Model.AncestorOrSelf(1);
}
<ul>
    <li><a href="@root.Url">@root.Name</a></li>
    @foreach (var page in root.Children.Where("Visible"))
    { 
        <li><a href="@page.Url">@page.Name</a>
            @if (page.Children.Where("Visible").Count() > 0)
            {
                <ul>
                    @foreach (var subpage in page.Children.Where("Visible"))
                    {
                        <li><a href="@subpage.Url">@subpage.Name</a></li>
                     }
                </ul>
            }
        </li>
    }
</ul>

Primeiro pegamos o conteúdo principal do site, ele será o primeiro item do menu. Depois percorremos os filhos do conteúdo root visíveis na navegação. Verificamos se os filhos possuem filhos e que estejam visíveis na navegação.

Bem simples.

Isso é tudo!