从Umbraco中的UrlName获取节点
本文关键字:获取 节点 UrlName 中的 Umbraco | 更新日期: 2023-09-27 18:27:54
我正在进行Umbraco
设置(Umbraco 7
),需要能够从node.UrlName
加载节点。
我试过Xpath
,但没用。这是我的xpath
:
var facNode = umbraco.NodeFactory.Node.GetNodeByXpath("/*[@UrlName='" + urlName + "']");
我还尝试了一些没有/
、有//
的变体,只是在寻找id
而不是UrlName
。
这似乎很简单,但我似乎遗漏了一些东西。我是Umbraco
的新手,如果有任何帮助,我们将不胜感激。
有比xpath
更好的方法吗?我应该使用什么类?
提前感谢!
这里有几件事。首先,xpath是区分大小写的,所以您需要针对@urlName
而不是@UrlName
。
此外,值得指出的是,尝试通过urlName属性定位节点不是一个很好的策略,因为多个节点可能具有相同的urlName特性。这是可能的,因为Umbraco只坚持在节点共享同一父节点的情况下urlName属性是唯一的。
这是有道理的,因为(例如,在对新闻/博客文章进行分组时)您可能希望在名为2014的节点下有一个名为October的节点,但在名为2013的父节点下也有一个称为Octo十月的节点。在这种情况下,您的xpath将同时定位两个十月节点,因此不起作用。
顺便说一句,这取决于背景是什么以及你试图实现什么。您当然应该避免使用umbraco.NodeFactory.Node
,因为Umbraco 4.8中的标准是使用IPublishedContent
接口,它可以说更灵活。