简单的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>
第一页和最后一页没有孩子。我在这里缺少什么?
答案 0 :(得分:0)
您可能在皮肤的nav文件夹中遗漏了cs文件(通常是&#34; nav.cshtml&#34;)。它可能没有包含在安装.zip文件夹中。
答案 1 :(得分:0)
抱歉,忘记我发布了这个...问题实际上是我的.ascx中的控件;我为菜单设置了错误的父级:
<dnn:menu id="dnnNav" menustyle="nav" nodeselector="
<击> <强>成员强> 击> " runat="server"/>
所以MenuNode字面上没有要列出的孩子。