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