代码之家  ›  专栏  ›  技术社区  ›  jpkeisala

如何从sitemap.currentnode向后循环到sitemap.rootnode

  •  0
  • jpkeisala  · 技术社区  · 15 年前

    我有一个这样简单的站点地图,来自asp:sitemapdatasource:

    第1页第2页第3页

    我想在C中创建foreach循环来生成它,而不是使用asp:sitemappath,因为我需要向它添加一些异常。现在我不知道如何从sitemap.currentnode向后循环到sitemap.rootnode?

    1 回复  |  直到 15 年前
        1
  •  3
  •   Richard Szalay    15 年前

    你要找的房产是 SiteMapNode.ParentNode

    SiteMapNode currentNode = SiteMap.CurrentNode;
    SiteMapNode rootNode = SiteMap.RootNode;
    Stack<SiteMapNode> nodeStack = new Stack<SiteMapNode>();
    
    while (currentNode != rootNode)
    {
        nodeStack.Push(currentNode);
    
        currentNode = currentNode.ParentNode;
    }
    
    // If you want to include RootNode in your list
    nodeStack.Push(rootNode);
    
    SiteMapNode[] breadCrumbs = nodeStack.ToArray();