Sitecore中非常简单的Sitemap

时间:2013-05-24 06:16:00

标签: razor sitecore

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

它按预期返回第一个级别,但不再返回。我无法弄清楚为什么 - 我错过了什么?

1 个答案:

答案 0 :(得分:2)

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

必须是:

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