Tôi có Chế độ xem với bảng biểu thị bảng chấm công của nhân viên. Ngày trên đầu trang, các dự án xuống bên, với mỗi ngày/dự án giao nhau có chứa hai giá trị cho giờ thường xuyên và làm thêm giờ.ASP.NET MVC DefaultModelBinder với danh sách lồng nhau
The (đơn giản hóa) định nghĩa lớp cho các mô hình trang là:
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;
}
Các yếu tố hình thức trên trang được đặt tên như sau trong một nỗ lực để có được những DefaultModelBinder để chọn lên trên chúng.
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.
Khi xem được gửi, tham số model
không được điền hoàn toàn. model.Projects
chứa các dự án, nhưng trường của WorkUnits
trống. DefaultModelBinder
có hỗ trợ các bộ sưu tập lồng nhau như tôi đang cố gắng làm không? Nếu không, tôi nên làm gì?