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

Axi*_*ili 8 c# umbraco razor umbraco7

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

var homePage = CurrentPage.AncestorsOrSelf(1).First();
Run Code Online (Sandbox Code Playgroud)

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

Dig*_*ift 18

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

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


Séb*_*her 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");
Run Code Online (Sandbox Code Playgroud)

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

希望这可以帮助!