Erstellen Sie ein Formular aus einem rekursiven Modell

Ich habe ein rekursives Modell wie dieses:

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>();
    }
}

Mit diesem Code baue ich einen Baum mit einer gestochen scharfen Ansicht:

<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>
}

Alles funktioniert einwandfrei, mein Baum wird gerendert, aber ich muss ein Textfeld in jede Zeile des Baums einfügen, und ich möchte Namen wie diesen eingeben müssen:

Childs[0].Childs[1].Childs[2].Text

Meine Modellbindung funktioniert also wie erwartet.

Gibt es eine Möglichkeit, EditorTemplates oder etwas anderes zu verwenden, um dies zu erreichen?

Ich möchte vermeiden, Eingabenamen in Javascript auf dem Formular "Submit" zu erstellen.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage