Criar um formulário a partir de um modelo recursivo
Eu tenho um modelo recursivo como este:
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>();
}
}
Eu estou construindo uma árvore com uma visão de navalha usando este código:
<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>
}
Tudo funciona bem, minha árvore renderiza, mas eu preciso adicionar uma caixa de texto em cada linha da árvore e eu quero ter que inserir nomes como este:
Childs[0].Childs[1].Childs[2].Text
Então, meu modelo de ligação funcionará como esperado.
Existe alguma maneira de usar o EditorTemplates ou qualquer outra coisa para conseguir isso?
Eu quero evitar a criação de nomes de entrada em javascript no formulário de envio.