Мой вопрос
Мой вопрос не о том, как сделать следующее (рендеринг древовидной структуры с использованием Razor), на который я нашел много ответов. Мои вопросы касаются базового управления памятью и потенциальных рисков данного решения:
Мое решение до сих пор (то, что я также нашел как общее решение) использовать частичное представление (Razor) (или подобное) и вызывать его рекурсивно. Но является ли использование рекурсии по неизвестному количеству узлов (означающее неизвестное число вложенных циклов и вызовов методов) безопасным (или хорошим) решением?
Мои вопросы:
- Существуют ли потенциальные риски управления памятью (риски переполнения стека, экстремального времени загрузки или тайм-аута запроса и т. Д.), Когда число узлов и дочерних узлов не определено?
- Если так, есть ли лучшее решение?
Различные сценарии будут выглядеть примерно так:
- Максимальная глубина дерева: 5
- Поддерево / дочерние узлы любого узла будут достигать приблизительно от 0 до 40 узлов
_LocationTreeRowPartial.csthml
<ul>
<li>
// Some code like name of node etc.
@foreach (var row in Model.Children)
{
@Html.Partial("PartialViews/_LocationTreeRowPartial", row)
}
</li>
</ul>