Создать форму из рекурсивной модели
У меня есть рекурсивная модель, подобная этой:
public class Node
{
public int Id { get; set; }
public string Text { get; set; }
public IList<Node> Childs { get; set; }
public Node()
{
Childs = new List<Node>();
}
}
Я строю дерево с помощью бритвы, используя этот код:
<ul>
@DisplayNode(Model)
</ul>
@helper DisplayNode(Node node) {
<li>
@node.Text
@if(node.Childs.Any())
{
<ul>
@foreach(var child in node.Childs)
{
@DisplayNode(child)
}
</ul>
}
</li>
}
Все работает нормально, мое дерево рендерится, но мне нужно добавить текстовое поле в каждой строке дерева, и я хочу, чтобы ввести имена, как это:
Childs[0].Childs[1].Childs[2].Text
Так что моя модель привязки будет работать как положено.
Есть ли способ с помощью EditorTemplates или что-нибудь еще для достижения этой цели?
Я хочу избежать создания входных имен в JavaScript на форме отправки.