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);
你可以顯示你的'TasksModel'中的一部分,你有'IsChecked' –
你已經找到了MVC的HTML幫助器的限制。他們不知道如何爲'x.Tasks.ElementAt(i)'生成標記。現在該學習模型綁定的工作原理了。在Google上查找「MVC中的模型綁定集合」。 –
謝謝,現在就開始工作吧。 –