Sharepoint SPNavigation.Children始终返回0

Sharepoint SPNavigation.Children始终返回0,sharepoint,sharepoint-2010,wss,Sharepoint,Sharepoint 2010,Wss,我在SP2010基金会工作,但我认为自WSS3以来没有什么变化 我正在尝试为一个基础项目创建一个自定义菜单,这是我到目前为止所拥有的 static void Main(string[] args) { using (SPSite site = new SPSite("http://localhost:3002/")) { SPNavigation nav =site.RootWeb.Navigation;

我在SP2010基金会工作,但我认为自WSS3以来没有什么变化

我正在尝试为一个基础项目创建一个自定义菜单,这是我到目前为止所拥有的

static void Main(string[] args)
    {
        using (SPSite site = new SPSite("http://localhost:3002/"))
        {
            SPNavigation nav =site.RootWeb.Navigation;

            //gets the correct order of top level menu items
            SPNavigationNodeCollection nodes = nav.TopNavigationBar;

            using (SPWeb web = site.OpenWeb())
            {
                SPNavigationNode toplinkbar = web.Navigation.GetNodeById(1002);
                if (toplinkbar != null)
                {
                    foreach (SPNavigationNode node in toplinkbar.Children)
                        PrintNode(node);
                }
            }
        }
        Console.Write("\nPress ENTER to continue....");
        Console.ReadLine();
    }

    static void PrintNode(SPNavigationNode node)
    {
        Console.WriteLine(node.Title);
        foreach (SPNavigationNode item in node.Children)
            PrintNode(item);
    }
因此,第一部分toplinkbar.Children工作正常,但是PrintNode节点中的foreach循环。当我知道站点中有子站点时,Children总是返回0

我是否打算使用SPSiteMapProvider获取子网站


任何帮助都将是伟大的,因为这让我发疯

只需使用附加到TopNavigation的NavigationNodeCollection。这是TopNav信息的渠道来源。
当您以这种方式加载“根”节点时,它将以断开连接的方式加载。
我有一篇旧的博客文章可能会有所帮助