我有一个带有代表员工时间表的表格的视图。上方的天数,下方的项目,每天/项目交叉点包含两个值,分别表示正常工作时间和加班时间。
页面模型的(简化的)类定义是:
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
像我想要的那样支持嵌套集合?如果没有,我该怎么办?