Umbraco,按名称和数据类型获取节点

时间:2013-04-10 11:53:11

标签: c# select umbraco nodes

我有一个名为“Demo”的数据类型我还有一个名为“Test”的页面/节点。 如果我不在任何类型的上下文中,我将如何选择此页面/节点?

我尝试过使用新节点(-1)并选择我的方式,但我真的无法想出这个......

提前致谢!

2 个答案:

答案 0 :(得分:7)

最简单的方法可能是使用以下uQuery扩展程序之一:

以下是几个例子:

<强> GetNodesByName(字符串):

umbraco.NodeFactory.Node node = uQuery.GetNodesByName("Page Name")
    .Where(n => n.NodeTypeAlias == "NodeTypeAlias").FirstOrDefault();

if (node != null)
{
    //...
}

GetNodesByType(string或int):

umbraco.NodeFactory.Node node = uQuery.GetNodesByType("NodeTypeAlias")
    .Where(n => n.Name == "Page Name").FirstOrDefault();

if (node != null)
{
    //...
}

答案 1 :(得分:6)

对于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也为你提供了很多选择。