2

我在使用 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> 
    }

它按预期返回第一级,但仅此而已。我不知道为什么 - 我错过了什么?

4

1 回答 1

2

您忘记将 @ 添加到第二次调用中,RecursiveSitemap(child)因此它不会写出结果。

肯定是:

if (child.Children.Count != 0)
{
  @RecursiveSitemap(child);
}
于 2013-05-24T09:04:56.347 回答