Добрый день!
Задались с коллегой вопросом, как можно сделать рекурсию в aspx, аналогично
этому.
И нашли вполне простое и удобное решение. Основа — использование лямбд.
public class Category
{
public int id;
public string name;
public IEnumerable<Category> categories;
}
<%
Action<IEnumerable<Category>> categoriesMacros = null;
categoriesMacros = categories => { %>
<ul>
<% foreach(var c in categories) { %>
<li> <%= Html.Encode(c.name)%> </li>
<% if (c.categories != null && c.categories.Count() > 0) categoriesMacros(c.categories); %>
<% } %>
</ul>
<% }; %>
<% var categpries = (IEnumerable<Category>)ViewData["categories"]; %>
<% categoriesMacros(categpries); %>
Надеюсь вам пригодится