【问题标题】:Umbraco: Get root Node ID based on Node IDUmbraco:根据节点 ID 获取根节点 ID
【发布时间】:2016-09-21 14:53:34
【问题描述】:

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

这是我目前得到的:

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

我试过 library.GetCurrentDomains(item.Id) 但这不起作用。

【问题讨论】:

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

标签: c# .net asp.net-mvc umbraco umbraco7


【解决方案1】:

不完全确定这是否是你需要的,也不是最好的方法,但你可以做类似的事情

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

获取任何节点的第二级“根”。我认为;-)

【讨论】:

    【解决方案2】:

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

    foreach (var item in pages)
    {
        var rootPage = item.AncestorOrSelf(1);
    
        //do something with the root node here
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-25
      • 2021-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多