我无法从umbraco 4.8获得多节点树选取器

时间:2015-10-19 10:40:23

标签: xml loops razor umbraco

我'得到了这个XML结构:

<tagging>
      <MultiNodePicker>
          <nodeId>119683</nodeId>
          <nodeId>119684</nodeId>
      </MultiNodePicker>
  </tagging>

@using umbraco.MacroEngines
@inherits DynamicNodeContext
@
{
    <ul>
    @foreach (var item in Model.tagging)
    {
        var node = Library.NodeById(item.InnerText);
        if (node.Id != 0)
        {
            <li>@node.Name></li>
        }
    }
    </ul>
}     

但是没有用,也许我写错了。

任何?

1 个答案:

答案 0 :(得分:0)

在我的脑海中,您可能需要将代码更改为以下内容:

@using umbraco.MacroEngines
@inherits DynamicNodeContext
@
{
    <ul>
    @foreach (var item in Model.Tagging.MultiNodePicker)
    {
        var node = Library.NodeById(item.InnerText);
        if (node.Id != 0)
        {
            <li>@node.Name></li>
        }
    }
    </ul>
}

您可能会发现将MultiNodePicker配置为以逗号分隔列表而不是xml保存节点要容易得多 - 那么您可以这样做:

@using umbraco.MacroEngines
@inherits DynamicNodeContext
@
{
    <ul>
    @foreach (var item in Model.Tagging)
    {
        var node = Library.NodeById(item);
        if (node.Id != 0)
        {
            <li>@node.Name></li>
        }
    }
    </ul>
}

如果没有其他理由将节点存储为XML,那么这可能是最简单的方法。