2016-09-21 128 views
0

我是Umbraco的新手,我有一个5个根节点的问题,并且我已经获得了包含在这些根节点中的随机页面的列表。我从这些页面收到的数据是NodeId,NodeName和Level。我想要做的是获得我拥有的每个页面的根节点信息。不幸的是,这是我遇到的问题,有没有办法根据NodeId获取根节点或1级节点的信息。Umbraco:根据节点ID获取根节点ID

这是我到目前为止有:

foreach (var item in pages) 
{ 
    int level = item["level"].AsInt(); 
    if (level > 1){ 
     var currentItem = library.GetCurrentDomains(item.Id); 
    } 
} 

我用尽library.GetCurrentDomains(item.Id),然而这并不工作。

+0

请分享更多的代码和上下文。您如何首先检索这些数据(ID),以及为什么不使用任何Umbraco包装来获取文档的动态或类型对象,然后通过使用Parent/AncestorOrSelf等辅助方法来获取遍历XML缓存的能力? –

回答

1

不能完全确定,如果这是你需要什么,也不如果这是最好的方式,但你可以不喜欢

item.Path.Split(',')[1] 

东西得到任何节点的第二级“根”。我认为;-)

0

假设随机页面的列表都是IPublishedContent,那么可以在页面上使用扩展方法AncestorOrSelf(1),它将获得页面的根节点。例如。

foreach (var item in pages) 
{ 
    var rootPage = item.AncestorOrSelf(1); 

    //do something with the root node here 
}