従業員のタイムシートを表すテーブルを含むビューがあります。上部の日数、側面のプロジェクト。各日/プロジェクトの交差点には、通常の時間と残業の2つの値が含まれています。
ページモデルの(簡略化された)クラス定義は次のとおりです。
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
'sWorkUnits
フィールドは空です。DefaultModelBinder
私がやろうとしているようなネストされたコレクションをサポートしていますか?そうでない場合は、どうすればよいですか?