0

私は Umbraco CMS を初めて使用し、最近コーディングを開始しました。私のページ構成はこんな感じですここに画像の説明を入力

そして今、Umbraco フォーラムで見つけたコードに基づいてダイナミック ナビゲーションを生成するために、このようなコードを作成しました。しかし、出力では、他のリンクではなくリンクとして「ホーム」のみを提供しています。その理由は、次のように記述したためです。他のページではなく、ホームページのみを返します。私はこれもModel.AncestorOrSelf()を使ってみました。しかし、それは同じ結果をもたらしています。

<nav>
    <ul>

        @{ var homeNode = Model.AncestorOrSelf(1); }

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

        @foreach (var page in Model.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.Textpages.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