@inherits umbraco.MacroEngines.DynamicNodeContext
@using System.Collections;
@{ List qa = new List(); } //this is not defined in the recursi
In Razor 3.2.3 it seems the variable declared in @functions
need to be declared static
. Seems unfortunate. Please correct me if there is an alternative way.
@functions
{
static List<string> qa = new List<string>();
}
@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)
}
}
Define the variable in a @functions
section.
The normal @{
places your code in some method body. Use @functions
to define class members.
@functions{ List<string> qa = new List<string>(); }
More reading on this matter: SLaks Dissecting razor series.