我正在处理后端模块,因此Node.GetCurrent()
不是一个选项。我需要找到一种方法来调用Node currentNode = new Node(parentNodeId);
之类的东西并获取网站的根节点。我在XSLT中看过样本,但C#没有。有谁知道我怎么能做到这一点?
即使只是获取根节点的ID,我也可以调用new Node()
。
答案 0 :(得分:15)
根节点始终可用:
var rootNode = new Node(-1);
答案 1 :(得分:7)
Umbraco 7的更新(也可以在早期版本中使用)
@{
var siteroot = CurrentPage.AncestorOrSelf(1);
}
有关详细信息,请查看文档 - > http://our.umbraco.org/Documentation/Reference/Querying/DynamicNode/Collections
答案 2 :(得分:5)
布伦南是对的,
var rootNode = new DynamicNode(-1);
也有效!
答案 3 :(得分:5)
Umbraco 6 +的更新
public static IPublishedContent GetRootNode()
{
var umbracoHelper = new UmbracoHelper(UmbracoContext.Current);
var rootNode = umbracoHelper.TypedContentSingleAtXPath("//root"));
return rootNode;
}
这只是采用文档类型别名,并使用当前的Umbraco上下文将根节点查找为IPublishedContent。 UmbracoHelper也为你提供了很多选择。
答案 4 :(得分:4)
Umbraco 7:
Umbraco.TypedContentAtRoot();
答案 5 :(得分:0)
我经常使用这个。我喜欢这是相对的,因此,如果您有多个根节点,则可以在没有foreach循环的情况下同时定位两个目标。
IPublishedContent topNode = Model.Content.AncestorOrSelf(1);