如何在 Umbraco 6 多站点安装中获取当前站点的根主节点?
结构是这样的:
Content
--Home1
--About
--Contact
--Home2
--About
--Contact
--Home3
--About
--Contact
var root = Model.Content.AncestorOrSelf("[YourHomeNodeDocumentType]");
我不确定这是否是 Umbraco 6 语法,但您想要的是 AncestorOrSelf 遍历调用。我有许多多站点多语言设置,我一直在使用它。“或自我”部分很有趣,在某些情况下,“根”节点是一个页面。
这是一种享受
var rootId = (CurrentPage.Path.Split(','))[1];
这取决于你想要一个动态对象还是一个强类型的 DynamicNode 对象——但我倾向于用强类型的方式来做,所以我依赖
var root = CurrentModel.AncestorOrSelf(1);
根据您可以使用的 Umbraco 6 版本
IPublishedContent rootNode = Umbraco.TypedContentAtRoot().FirstOrDefault();
对于具有单个根节点的站点或
IEnumerable<IPublishedContent> rootNode = Umbraco.TypedContentAtRoot();
对于您的情况,作为具有多个根节点的站点。这些都适用于更接近版本 7 轨道的版本。
我通常使用:
Model.Content.AncestorOrSelf(1);
或者
IPublishedContent topNode = Model.Content.AncestorOrSelf(1);