【问题标题】:Umbraco 7 + Razor: How to get a Document/Node by ID?Umbraco 7 + Razor:如何通过 ID 获取文档/节点?
【发布时间】:2014-10-30 02:21:17
【问题描述】:

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

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

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

【问题讨论】:

    标签: c# razor umbraco umbraco7


    【解决方案1】:

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

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

    【讨论】:

    • 你是对的,但问题具体说明了 Razor 和 .cshtml 文件。如果您需要其他上下文的答案,请提出问题 :)
    【解决方案2】:

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

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

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

    希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-11
      • 2013-11-16
      相关资源
      最近更新 更多