3

我只是找不到如何为 Umbraco 创建无序列表。

我能够获得预值,但我无法将它们作为前端列表输出。

到目前为止,我的代码是:

  var myValues = umbraco.library.GetPreValues(12080);
  <ul>
   @foreach(var c in myValues){
      <li><a href="@baseNode.Url?category=@c">@c</a></li>                      
     }

 </ul>

我正在恢复价值观

  • 项目,但它们没有分开。我尝试将 .Split() 添加到 foreach 中的 myValues 并给我一个错误。我错过了什么吗?

    提前致谢。

  • 4

    1 回答 1

    7

    那是因为umbraco.library.GetPrevalues(int id)返回一个XPathNodeIterator如此简单地遍历值是不够的。在 Umbraco Wiki 中,您可以找到一个很好的示例,说明如何使用XPathNodeIterator. 我重写了它以适应 Razor 上下文:

    @using System.Xml.XPath
    @using umbraco.MacroEngines
    @inherits DynamicNodeContext
    @try
    {
        var baseNode = Model.AncestorOrSelf();
    
        XPathNodeIterator iterator = umbraco.library.GetPreValues(1094);
        iterator.MoveNext(); //move to first
        XPathNodeIterator preValues = iterator.Current.SelectChildren("preValue", "");
    
        @preValues.Count
    
        <ul>
        @while (preValues.MoveNext())
        {
            string preValue = preValues.Current.Value;
    
            <li><a href="@baseNode.Url?category=@preValue">@preValue</a></li>                      
        }
        </ul>
    }
    catch (Exception e)
    {
        @e.ToString()   
    }
    
    于 2012-06-23T02:27:42.667 回答