我在使用Razor的Sitecore解决方案中拥有这个相当简单的Sitemap;
@{
var root = Sitecore.Context.Database.GetItem(myRootId);
<div class="sitemap">
@RecursiveSitemap(root)
</div>
}
@helper RecursiveSitemap(Item parentItem){
<ul>
@{
Sitecore.Collections.ChildList childList = parentItem.Children;
foreach (Item child in childList)
{
<li><a href="@Sitecore.Links.LinkManager.GetItemUrl(child)">@child["title"]</a></li>
if (child.Children.Count != 0)
{
RecursiveSitemap(child);
}
}
}
</ul>
}
它按预期返回第一个级别,但不再返回。我无法弄清楚为什么 - 我错过了什么?
答案 0 :(得分:2)
您忘记将@添加到RecursiveSitemap(child)
的第二次调用,因此不会写出结果。
必须是:
if (child.Children.Count != 0)
{
@RecursiveSitemap(child);
}