Razor Sitecore中非常简单的站点地图

Razor Sitecore中非常简单的站点地图,razor,sitecore,Razor,Sitecore,我使用Razor在Sitecore解决方案中提供了这个相当简单的站点地图 @{ var root = Sitecore.Context.Database.GetItem(myRootId); <div class="sitemap"> @RecursiveSitemap(root) </div> } @helper RecursiveSitemap(Item parentIt

我使用Razor在Sitecore解决方案中提供了这个相当简单的站点地图

@{
        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> 
    }
@{
var root=Sitecore.Context.Database.GetItem(myRootId);
@递归站点地图(根)
}
@helper RecursiveSitemap(项parentItem){
    @{ Sitecore.Collections.ChildList ChildList=parentItem.Children; foreach(子项列表中的子项) {
  • 如果(child.Children.Count!=0) { 递归站点地图(子级); } } }
}

它按预期返回第一级,但不再返回。我不知道为什么-我缺少了什么?

您忘记在第二次调用递归Sitemap(child)时添加@,因此它不会写出结果

它必须是:

if (child.Children.Count != 0)
{
  @RecursiveSitemap(child);
}

试着调试你的代码,看看它能做什么。调试器会返回结果,但仍然不知道上面的错误是什么?