これ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()
}