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

Umbraco 7+Razor:如何通过ID获取文档/节点?

  •  8
  • Aximili  · 技术社区  · 10 年前

    在示例代码中,这是如何从.cshtml文件获取主页的

    var homePage = CurrentPage.AncestorsOrSelf(1).First();
    

    现在,如何通过其ID获取特定页面/节点(与当前页面无关,例如新闻页面)?

    2 回复  |  直到 10 年前
        1
  •  18
  •   Digbyswift    10 年前

    您可以使用完全相同的方法 .Where(x => x.Id == newsPageId) .

    或者,您可以使用 @Umbraco.TypedContent(newsPageId) @Umbraco.Content(newsPageId) .

        2
  •  8
  •   Sébastien Richer    10 年前

    直接答案是Umbraco.TypedContent(id)。但是!如果你想从任何地方获得“新闻”节点,我建议你如下。对于某些多语言设置,使用id是有问题的,而且如果id更改,它将停止工作。

    // 1- Get root node
    var site = Model.Content.AncestorOrSelf("Site");
    
    // 2- Get news node
    var news = site.Descendant("News");
    

    这种方法更加动态,您现在可以使用新闻节点来循环它的子节点,或者您需要的任何内容。为此,您确实需要为网站和新闻类型设置特定的文档类型。

    希望这有帮助!