@inherits umbraco.MacroEngines.DynamicNodeContext
@using System.Collections;
@{ List<string> qa = new List<string>(); } //this is not defined in the recursive helper below
@helper traverseFirst(dynamic node){
var items = node.Children.Where("umbracoNaviHide != true");
foreach (var item in items) {
foreach(var subItem in item.Descendants()) {
if(subItem.Id == Model.Id)
{
qa.Add();
break;
}
}
@traverseFirst(item)
}
}
@traverseFirst(@Model.AncestorOrSelf("Book"))
The variable qa canot be accessed in the recursive helper. Is there a way around this?
In Razor 3.2.3 it seems the variable declared in
@functions
need to be declaredstatic
. Seems unfortunate. Please correct me if there is an alternative way.Define the variable in a
@functions
section.The normal
@{
places your code in some method body. Use@functions
to define class members.More reading on this matter: SLaks Dissecting razor series.