従業員出席シートを作成しようとしています。
これが私のAttendanceModel
public class AttendanceModel
{
//Primary Key and auto-generated field for this model
public int AttendanceID { get; set; }
public DateTime AttendanceDate { get; set; }
//Present/Absent status
public bool Status { get; set;}
//Primary key of Employee Model
public int EmployeeID { get; set; }
//Reference to Employee Model
public Employee Employee { get; set; }
}
ここで、このモデルに、従業員の名前と出席用のチェックボックスを含めるようにしますView
。私の問題は(3日目に編集)ですemployeeId(Hidden field)
- このビューに別のViewModelを使用する必要がありますか
view
データベースに複数の行を挿入する必要があるため、エンティティに、そして最終的にはデータベースに情報を挿入する方法(つまり、バッチ処理)- ビューから情報を取得して処理する方法もわかりません
どんな提案も認められます。:)
よろしくお願いします!!!
*編集(私が試したこと)* 1 .モデルクラスへの参照を除くAttendanceViewModel
すべてのフィールドを含む
別のクラスを作成しました。それから私はそれをレンダリングします。コントローラでは、引数はであり、そこから出席モデルに入力されます。これがコードです。 AttendanceModel
Employee
view
IEnumerable<AttendanceViewModel>
public ActionResult Index()
{
var EmployeeAttendance = from s in new EmployeeDBContext().Employees
select new AttendanceViewModel
{
EmployeeID = s.EmployeeID
};
return View(EmployeeAttendance.ToList());
}
レコードを保存するためのコントローラーアクションは
[HttpPost]
public ActionResult SaveAttendance(IEnumerable<AttendanceViewModel> attendancess) // argument of SaveAttendance is always `null`
{
if (ModelState.IsValid)
{
var _context = new EmployeeDBContext();
foreach (var a in attendancess)
{
var newAttendance = new AttendanceModel
{
EmployeeID = a.EmployeeID,
AttendanceStatus = a.Status
};
_context.Attendance.Add(newAttendance);
}
_context.SaveChanges();
}
//Rest of code
しかし、その機能しない引数は常にnull
:(