我有一个名为“Demo”的数据类型我还有一个名为“Test”的页面/节点。如果我不在任何类型的上下文中,我将如何选择这个页面/节点?
我尝试过使用新节点(-1)并选择我的方式,但我真的无法弄清楚这个..
提前致谢!
最简单的方法可能是使用以下uQuery扩展之一:
这里有几个例子:
GetNodesByName(字符串):
umbraco.NodeFactory.Node node = uQuery.GetNodesByName("Page Name")
.Where(n => n.NodeTypeAlias == "NodeTypeAlias").FirstOrDefault();
if (node != null)
{
//...
}
GetNodesByType(字符串或整数):
umbraco.NodeFactory.Node node = uQuery.GetNodesByType("NodeTypeAlias")
.Where(n => n.Name == "Page Name").FirstOrDefault();
if (node != null)
{
//...
}
使用 Umbraco 6+,我认为这会更好......
public static IPublishedContent GetNodeByAlias(string alias)
{
var umbracoHelper = new UmbracoHelper(UmbracoContext.Current);
var contentNode = umbracoHelper.TypedContentSingleAtXPath(String.Format("//{0}", alias));
return contentNode;
}
这仅采用文档类型别名并使用当前 Umbraco 上下文将您的节点查找为 IPublishedContent。UmbracoHelper 也为您提供了很多选择。