DDRMenu无法渲染Razor模板中的所有内容DNN

时间:2017-01-15 07:44:25

标签: c# asp.net razor dotnetnuke

简单的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>

第一页和最后一页没有孩子。我在这里缺少什么?

2 个答案:

答案 0 :(得分:0)

您可能在皮肤的nav文件夹中遗漏了cs文件(通常是&#34; nav.cshtml&#34;)。它可能没有包含在安装.zip文件夹中。

答案 1 :(得分:0)

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

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

所以MenuNode字面上没有要列出的孩子。