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

时间:2014-09-05 07:26:23

标签: c# razor umbraco umbraco7

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

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

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

2 个答案:

答案 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");

这种方法更具动态性,你现在可以使用你的新闻节点来循环它的孩子,或者你需要的任何东西。为此,您需要为站点和新闻类型设置特定的文档类型。

希望这有帮助!