我如何使用 Umbraco 的多节点树选择器显示来自节点的数据?

How do I display data from nodes using Umbraco's Multinode Treepicker?

这个属性类型的documentation我已经研究过了,也试了一堆从论坛上拉来的方法,但我真的一点都不懂。它似乎与我迄今为止使用的所有其他 属性 类型都不同。我需要一个我可以真正联系起来的例子。

这是我正在处理的内容。我有一个页面在 foreach 循环中显示日志列表。这些日志本身就是 Umbraco 中的节点,附有 PDF、摘要、日期和多节点树选择器,允许您 select 日志中涉及的人员。我想显示在树选择器中选择的节点的名称。

我的代码看起来像这样(删除了所有无关的、已经工作的属性):

    @{
        var LogsMonthNode = Model.Content.AncestorOrSelf("LogListing");
    }
    @foreach (var node in LogsMonthNode.Children.Where("Visible"))
    {
        <h1 id="#">@node.AsDynamic().Name</h1> <!--This is the log's name.-->
        Starring: <!-- Here is where I want a foreach loop (I assume) that basically says "display the .Name of each node in the treepicker"-->
    }

我的多节点树选择器称为 "characters"。

非常感谢任何帮助!!

Multinode treepicker 只是将所选项目的节点 id 保存为逗号分隔的字符串。要从中获取属性,您需要首先从节点 ID 中获取实际节点,如下所示。我假设您的 LogsMonthNode 节点子节点具有带有选定节点的多节点树选择器 属性 并相应地编写。

@{
    var LogsMonthNode = Model.Content.AncestorOrSelf("LogListing");
}
@foreach (var node in LogsMonthNode.Children.Where("Visible"))
{
    <h1 id="#">@node.AsDynamic().Name</h1> <!--This is the log's name.-->
    foreach (var item in Umbraco.TypedContent(node.GetPropertyValue<string>("characters").Split(',')))
    //get nodes, split ids and get content from umbraco for each id
    {
        if (item != null)
        {                    
            <h2>@item.Name</h2>
        }

    }
}