DDRMenu 不呈现 Razor 模板中的所有内容 |神经网络

DDRMenu not rendering everything in Razor template | DNN

简单的 Razor 模板有问题。这应该呈现我的 DNN 页面列表:

@using DotNetNuke.Web.DDRMenu;
@using System.Dynamic; 
@inherits DotNetNuke.Web.Razor.DotNetNukeWebPage<dynamic>
@{
    var root = Model.Source.root;
}
@helper RenderNodes(IList<MenuNode> nodes) {
    if (nodes.Count > 0) {
        <div id="dnnFooterMenu">
            <ul>
                @foreach (var node in nodes) {
                    if (node.HasChildren()) {
                        <li>
                            <a href="#"><b>@node.Text</b></a>
                            @RenderChildNodes(node.Children)
                        </li>
                    } 
                }
            </ul>
        </div>
    }
}
@helper RenderChildNodes(IList<MenuNode> nodes) {
    if (nodes.Count > 0) {
        <ul>
            @foreach (var node in nodes) {
                <li><a href="@node.Url">@node.Text</a></li>
            }
        </ul>
    }
}
@RenderNodes(root.Children)

它呈现的是这样的:

<div id="dnnFooterMenu">
    <ul>
        </ul>
</div>

第一页和最后一页没有子页。我在这里错过了什么?

您可能在皮肤的 nav 文件夹中丢失了 cs 文件(通常 "nav.cshtml")。它可能未包含在安装 .zip 文件夹中。

抱歉,我忘记发布了这个...问题实际上出在我的 .ascx 中的控件上;我为菜单设置了错误的父项:

<dnn:menu id="dnnNav" menustyle="nav" nodeselector="成员" runat="server"/>

所以 MenuNode 确实没有要列出的子节点。