У меня есть вид со столом, представляющим расписание сотрудника. Дни вверху, проекты вниз, с каждым днем / проектным пересечением, содержащим два значения для регулярных часов и сверхурочных.ASP.NET MVC DefaultModelBinder с вложенными списками
В (упрощенном) определении классов для модели страницы является:
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;
}
элементы формы на странице названы следующим образом в попытке получить DefaultModelBinder, чтобы поднять на них.
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.
Когда вид представляется, однако, параметр model
не будучи полностью заселена. model.Projects
содержит проекты, но поле Project
WorkUnits
пусто. DefaultModelBinder
поддерживает вложенные коллекции, как я пытаюсь сделать? Если нет, что мне делать?