0

カミソリ マクロを使用して umbraco でカミソリ メニューを作成しようとしています。カミソリメニューの作成に関する umbraco チュートリアルに従いました。

http://umbraco.com/help-and-support/video-tutorials/umbraco-fundamentals/razor-recipes/navigation/TVPlayer

最初の 3 ページでは機能しますが、別のページを追加したいのですが、そのページがメニューに表示されません。私のページには次の構造があります。

ここに画像の説明を入力

スタート、カレンダー、写真はメニューに表示されますが、ニュース ページは表示されません。この構造は正しいですか、それとも「ホーム」ページを作成し、その下にすべてのページを配置する必要がありますか?

これは私のカミソリマクロコードです:

@inherits umbraco.MacroEngines.DynamicNodeContext
<nav>
<ul>
    @{ var homeNode = Model.AncestorOrSelf("Home"); }

    <li><a href="@homeNode.Url" class="@Library.If(homeNode.Id == Model.Id, "selected", "")">@homeNode.Name</a></li>

    @foreach (var page in homeNode.Children.Where("Visible"))
    {
        var isSelected = false;
        if (Model.Id == page.Id || (Model.Parent != null && Model.Parent.Id == page.Id && Model.NodeTypeAlias != "Textpage"))
        {
            isSelected = true;
        }

        <li>

            <a href="@page.Url" class="@Library.If(isSelected, "selected", "")">@page.Name</a>

            <!-- If the page has child nodes (2nd level) that are visible and docTypeAlias is Textpage (textpages) -->
            @if (page.Children.Where("Visible").Count() > 0)
            {
                <ul>
                    @foreach (var childPage in page.Children.Where("Visible"))
                    {
                        <li>
                            <a href="@childPage.Url" class="@Library.If(childPage.Id == Model.Id, "selected", "")">@childPage.Name</a>
                        </li>
                    }
                </ul>
            }
        </li>  
    }
</ul>
</nav>
4

1 に答える 1