我想要保留父母,兄弟姐妹和孩子的SiteMap.CurrentNode.Clone(true)
替代品。我希望能够遍历SiteMap,就像我直接访问SiteMap一样。
原始问题列在here
在特定页面上,我使用SiteMap.SiteMapResolve
编辑CurrentNode的父级。这会破坏我在其他地方的代码,导航堆栈,然后访问所需级别的所有ChildNodes:
SiteMapNode c = System.Web.SiteMap.CurrentNode;
if (jumpsRequired < 0) {
while (jumpsRequired < 0)
{
c = c.ParentNode;
jumpsRequired++;
}
}
return c.HasChildNodes ? c.ChildNodes.Cast<SiteMapNode>() : new List<SiteMapNode>();
因为我在SiteMap.SiteMapResolve
ChildNodes.Count&lt; = 1上克隆了CurrentNode,因为克隆不会复制兄弟姐妹。