razor - Umbraco 和 Razor : If CurrentPage/Model is a Child, 状况

标签 razor umbraco

我的导航/节点结构如下:

首页
--关于我们
--我们的服务
-----金融
-----保险

我当前的代码循环遍历节点并将它们列在 .当“CurrentPage”有子项时,菜单包含子项。

此循环的问题在于,当这些子项(金融或保险)之一是“CurrentPage”时,“我们的服务”节点上的“if”条件将失败,因为 CurrentPage 不再有子项,因此“金融”和“保险”现在不再保留在菜单中。

我想添加“if”、“||”子句基本上会说“或 CurrentPage 是子节点”

下面的代码 谢谢

<ul>
    @foreach (var page in @CurrentPage.AncestorOrSelf(1).Children)
    {
        <li class="menuItems @(page.IsAncestorOrSelf(CurrentPage) ? "selected" : null)">
            <a href="@page.Url">@page.Name test</a>
        </li>


        if (@CurrentPage.Children.Count() > 0)
        {                
            foreach (var childPage in page.Children)
            {                    
                <li class="menuItems menuChildItems @(childPage.IsAncestorOrSelf(CurrentPage) ? "selected" : null)">
                    <a href="@childPage.Url">@childPage.Name</a>
                </li>
            }
        }

    }
</ul>

最佳答案

  1. 第一个 foreach 应该来自您的主页。 (你的家在1层吗?)

  2. 无需执行 if(has Children) 检查,因为如果没有任何子级,则不会循环。

您只想要 2 级菜单吗?如果是这样,请这样做:

<ul>
    @foreach (var page in CurrentPage.AncestorOrSelf(1).Children)
    {
        <li class="menuItems @(page.Id == CurrentPage.Id ? "selected" : "")">
            <a href="@page.Url">@page.Name test</a>
        </li>

        @if(CurrentPage.Id == page.Id || CurrentPage.Parent.Id == page.Id)
        {
            foreach (var childPage in page.Children)
            {                    
                <li class="menuItems menuChildItems @(childPage.Id == CurrentPage.Id ? "selected" : "")">
                    <a href="@childPage.Url">@childPage.Name</a>
                </li>
            }
        }
    }
</ul>

关于razor - Umbraco 和 Razor : If CurrentPage/Model is a Child, 状况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26737695/

相关文章:

mysql - 为 umbraco cms 创建自动登录

asp.net-mvc - 优化包和 Umbraco 4

c# - 如何使用 CSS 包含隐藏的 DIV 而不会占用空间?

c# - 在 vb.net Web 应用程序中使用 cshtml razor View

asp.net-mvc - 发布到 Razor 页面时出现 400 错误请求

c# - Umbraco - 通过 URL 选择节点

c# - Razor 中的动态 HTML 属性格式

c# - Nancy Razor 部分 View 不在 Release模式下呈现

umbraco - umbraco 的 Robots.txt

Umbraco 关系类型