ASP.NET MVC DefaultModelBinder com listas aninhadas
Eu tenho um modo de exibição com uma tabela que representa o quadro de horários de um funcionário. Dias ao longo do topo, projetos para baixo do lado, com cada interseção dia / projeto contendo dois valores para horas regulares e horas extras.
As definições de classe (simplificadas) para o modelo de página são:
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;
}
Os elementos de formulário na página são nomeados da seguinte maneira, na tentativa de obter o DefaultModelBinder para pegá-los.
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.
Quando a visão é submetida no entanto, omodel
parâmetro não está sendo totalmente preenchido.model.Projects
contém projetos, mas oProject
'sWorkUnits
campo está vazio. ODefaultModelBinder
suporta coleções aninhadas como eu estou tentando fazer? Se não, o que devo fazer?