【发布时间】:2014-10-30 02:21:17
【问题描述】:
在示例代码中,这是从 .cshtml 文件中获取主页的方式
var homePage = CurrentPage.AncestorsOrSelf(1).First();
现在,我如何通过 ID 获取特定页面/节点(与当前页面无关,例如新闻页面)?
【问题讨论】:
在示例代码中,这是从 .cshtml 文件中获取主页的方式
var homePage = CurrentPage.AncestorsOrSelf(1).First();
现在,我如何通过 ID 获取特定页面/节点(与当前页面无关,例如新闻页面)?
【问题讨论】:
您可以使用完全相同的方法,但使用.Where(x => x.Id == newsPageId)。
或者,您可以使用@Umbraco.TypedContent(newsPageId) 或@Umbraco.Content(newsPageId)。
【讨论】:
直接的答案是 Umbraco.TypedContent(id)。但是!如果您想从任何地方获取“新闻”节点,我推荐以下内容。对于某些多语言设置,使用 id 是有问题的,而且如果 id 发生更改,它将停止工作。
// 1- Get root node
var site = Model.Content.AncestorOrSelf("Site");
// 2- Get news node
var news = site.Descendant("News");
这种方法更加动态,您现在可以使用您的新闻节点来循环它的子节点,或者您需要的任何内容。为此,您确实需要为网站和新闻类型设置特定的文档类型。
希望这会有所帮助!
【讨论】: