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:
<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>
Os elementos de formulário na página são nomeados da seguinte maneira, na tentativa de obter o DefaultModelBinder para pegá-los.
<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>
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?