Рекурсия в aspx
От: achmed Удмуртия https://www.linkedin.com/in/nail-achmedzhanov-9907188/
Дата: 29.05.10 08:50
Оценка: 103 (4) :)
Добрый день!

Задались с коллегой вопросом, как можно сделать рекурсию в 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); %>



Надеюсь вам пригодится
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.