ASP.NET MVC DefaultModelBinder mit verschachtelten Listen

Ich habe eine Ansicht mit einer Tabelle, die die Arbeitszeittabelle eines Mitarbeiters darstellt. Tage ganz oben, Projekte ganz unten, wobei jeder Tag / Projekt-Schnittpunkt zwei Werte für reguläre Stunden und Überstunden enthält.

Die (vereinfachten) Klassendefinitionen für das Seitenmodell sind:

<code>public class TimesheetFormModel {
    public List<Project> Projects;
    // other things...
}
public class Project {
    public string Name;
    public List<WorkUnit> WorkUnits;
}
public class WorkUnit {
    public DateTime Date;
    public decimal RegularHours;
    public decimal OvertimeHours;
}
</code>

Die Formularelemente auf der Seite werden wie folgt benannt, um den DefaultModelBinder zu veranlassen, sie zu übernehmen.

<code>model.Projects[0].Name // "New Project"
model.Projects[0].WorkUnits[0].Date // "5/23/2009 12:00:00 AM"
model.Projects[0].WorkUnits[0].RegularHours // 0
model.Projects[0].WorkUnits[0].OvertimeHours // 0

model.Projects[0].WorkUnits[1].Date // "5/24/2009 12:00:00 AM"
model.Projects[0].WorkUnits[1].RegularHours // 0
model.Projects[0].WorkUnits[1].OvertimeHours // 0

model.Projects[0].WorkUnits[2].Date // "5/25/2009 12:00:00 AM"
model.Projects[0].WorkUnits[2].RegularHours // 0
model.Projects[0].WorkUnits[2].OvertimeHours // 0

// etc.
</code>

Wenn die Ansicht jedoch übermittelt wird, wird diemodel Parameter wird nicht vollständig gefüllt.model.Projects enthält Projekte, aber dieProject'sWorkUnits Feld ist leer. Tut dasDefaultModelBinder Verschachtelte Sammlungen unterstützen, wie ich es versuche? Wenn nicht, was soll ich tun?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage