Ich habe eine Ansicht mit einer Tabelle, die die Arbeitszeittabelle eines Mitarbeiters darstellt. Tage an der Spitze, Projekte an der Seite, wobei jeder Tag/Projekt-Schnittpunkt zwei Werte für reguläre Stunden und Überstunden enthält.ASP.NET MVC DefaultModelBinder mit verschachtelten Listen
Die (vereinfachte) Klassendefinitionen für die Seite Modells sind:
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;
}
Die Formularelemente auf der Seite genannt werden, wie in einem Versuch, folgt ihnen der Default abholen zu bekommen.
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.
Wenn die Ansicht jedoch vorgelegt, die model
Parameter sind nicht vollständig besiedelt. model.Projects
enthält Projekte, das Feld WorkUnits
Project
ist jedoch leer. Unterstützt die DefaultModelBinder
verschachtelte Sammlungen, wie ich es versuche? Wenn nicht, was soll ich tun?