【发布时间】:2017-07-19 11:42:46
【问题描述】:
我正在尝试创建一种递归方法来创建菜单。 我要实现的菜单显示孩子们的孩子等等。 我已经调试了代码,它一直到“最小的孩子”。
public string GetMenu(Node currentPage)
{
StringWriter stringWriter = new StringWriter();
using (HtmlTextWriter writer = new HtmlTextWriter(stringWriter))
{
foreach (var item in currentPage.ChildrenAsList)
{
writer.RenderBeginTag(HtmlTextWriterTag.Li);
writer.AddAttribute(HtmlTextWriterAttribute.Href, item.Url);
writer.RenderBeginTag(HtmlTextWriterTag.A);
writer.Write(item.Name);
if (item.ChildrenAsList.Any())
{
writer.RenderBeginTag(HtmlTextWriterTag.Ul);
GetMenu(new Node(item.Id));
writer.RenderEndTag();
}
writer.RenderEndTag();
writer.RenderEndTag();
}
}
return stringWriter.ToString();
}
这个方法给出输出:
<ul class="nav nav-sidebar">
<li>
<a href="/artikelsida001/">Artikelsida001
<ul>
</ul>
</a></li>
<li><a href="/patrikartikelsida/">PatrikArtikelsida
<ul>
</ul>
</a></li>
<li><a href="/en-testsida/">En testsida</a></li>
</ul>
【问题讨论】:
-
我想你忘了问一个问题。但是我怀疑这与您丢弃对
GetMenu(new Node(item.Id))的回复有关 -
对不起@MongZhu,这是我在这里的第一篇文章,所以我重写了几次,以使其更好。显然,事情并不顺利。无论如何,乔恩已经解决了,还是谢谢! :)
-
@PatrikJansson 别担心。您可以使用帖子下方的edit button 向您的帖子添加信息。它不是刻在石头上的;)幸运的是