web-dev-qa-db-ja.com

Umbraco-ルートの検索Node in C#

私はバックエンドモジュールに取り組んでいるので、Node.GetCurrent()はオプションではありません。 Node currentNode = new Node(parentNodeId);のようなものを呼び出して、サイトのルートノードを取得する方法を見つける必要があります。 XSLTでサンプルを見たことがありますが、C#では何もありません。誰かが私がこれを達成する方法を知っていますか?

ルートノードのIDを取得して、new Node()を呼び出せるようにするだけでもよいでしょう。

13
Atom

ルートノードは常に次のように使用できます。

var rootNode = new Node(-1);
15
E.J. Brennan

Umbraco 7のアップデート(以前のバージョンでも機能する可能性があります)

@{
    var siteroot = CurrentPage.AncestorOrSelf(1);
}

詳細については、ドキュメントを確認してください-> http://our.umbraco.org/Documentation/Reference/Querying/DynamicNode/Collections

8
tryinHard

Umbraco6 +のアップデート

public static IPublishedContent GetRootNode()
{
    var umbracoHelper = new UmbracoHelper(UmbracoContext.Current);
    var rootNode = umbracoHelper.TypedContentSingleAtXPath("//root"));

    return rootNode;
}

これは、ドキュメントタイプのエイリアスを取得し、現在のUmbracoコンテキストを使用してルートノードをIPublishedContentとして検索します。 UmbracoHelperは、これからもかなりの数のオプションを提供します。

6
tcmorris

Umbraco 7:

Umbraco.TypedContentAtRoot();
5
Leszek P

ブレナンは正しいです、

var rootNode = new DynamicNode(-1);

同様に動作します!

5
DotNetDan

私はよくこれを使います。複数のルートノードがある場合、foreachループなしで両方をターゲットにできるように、相対的であることが好きです。

IPublishedContent topNode = Model.Content.AncestorOrSelf(1);
0
Gcamara14