サンプルコードでは、これが.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");
このアプローチはより動的であり、ニュースノードを使用して子や必要なものをループさせることができます。このためには、サイトタイプとニュースタイプに特定のドキュメントタイプを設定する必要があります。
お役に立てれば!