0
我有一種方法應該基於checkbox tick來更新多對多表格。這裏的多對多關係在Exam
實體和Objectives
實體之間。但是我不知道如何實現它。如何使用View Model更新多對多表格
控制器:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Edit([Bind(Include = "id,Date,TotalMarks,ObjList")] ViewModel viewModel)
{
if (ModelState.IsValid)
{
var selectedObj = viewModel.ObjList.Where(o => o.isAssigned == true);
var exam = new Exam()
{
id = viewModel.id,
ExamDate = viewModel.Date,
TotalMarks = viewModel.TotalMarks,
};
if(selectedObj == null)
{
exam.Objectives = new List<Objectives>();
}
//how do i implement this here?
//exam.Objectives.Add(obj)
db.Entry(exam).State = EntityState.Modified;
db.SaveChanges();
return RedirectToAction("Index");
}
return View(viewModel);
}
如該代碼所示,對於許多一對多表更新是基於ObjList
從View Model
。我提到他們使用的方法,如在線教程:
exam.Obj.Add(obj);
or
exam.Obj.Remove(obj);
不過,我不知道如何實現這個,因爲這些方法都是經過model
自己進入method
。我的情況是通過viewmodel
的方法,所以我必須創建一個exam
變量,然後保存到db
。
那麼,如何更新多對多表?
'db.Exams.Add(檢查);''db.Exams.Remove(檢查);' –