我有一个来自 asp:SiteMapDataSource 的简单站点地图:
第 1 页 > 第 2 页 > 第 3 页
我想在 C# 中创建 foreach 循环来生成它而不是使用 asp:SiteMapPath 因为我需要向它添加一些异常。现在我无法弄清楚如何从 SiteMap.CurrentNode 向后循环到 SiteMap.RootNode?
您正在寻找的属性是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();