0
チェックされた値がフォームの残りの部分と同じようにコントローラに返されないため、何かが欠落しています。TextboxforはHtml.BeginFormのサブミット時にコントローラに送信されません。
@Html.LabelFor(m => m.Tasks)
<ul>
@for(var i = 0; i < @Model.Tasks.Count; i++)
{
<li>
@Html.HiddenFor(x => x.Tasks.ElementAt(i).Id)
@Html.CheckBoxFor(x => x.Tasks.ElementAt(i).IsChecked)
@Model.Tasks.ElementAt(i).TaskName
</li>
}
</ul>
.....私はあなたのコードをチェックした
var taskItems = new List <TasksModel>();
foreach(var task in tasks) {
taskItems.Add(new TasksModel(task.Id, task.Name, false));
}
var viewModel = new CreateScheduleViewModel {
Patients = patients,
Employees = employees,
PatientId = 0,
EmployeeId = 0,
Tasks = taskItems,
};
return View(viewModel);
あなたが 'IsChecked'を持っている' TasksModel'から部品を表示できます –
MVCのHTMLヘルパーの制限を発見しました。彼らは 'x.Tasks.ElementAt(i)'のマークアップを生成する方法を知らない。モデルバインディングがどのように機能するかを学ぶべき時です。 GoogleのMVCでモデルバインディングコレクションを探します。 –
ありがとうございました、今すぐ使えるようになりました。 –