我尝试使用以下代码从Select中保存枚举值:
@if (Model != null && Model.Count > 0)
{
int j = 0;
foreach (var i in Model)
{
<tr style="border:1px solid black">
<td>@Html.TextBoxFor(a => a[j].WarmUp)</td>
<td>@Html.TextBoxFor(a => a[j].ExerciseName)</td>
<td>@Html.TextBoxFor(a => a[j].CoolDown)</td>
<td>@Html.TextBoxFor(a => a[j].MomentOfTheDay)</td>
<td>@Html.TextBoxFor(a => a[j].ExerciseWeek)</td>
<td><select asp-for="@Model[j].Days" asp-items="Html.GetEnumSelectList<SampleMvcApp.Models.Days>()"></select></td>
<td>
@if (j > 0)
{
<a href="#" class="remove">Remove</a>
}
</td>
</tr>
j++;
}
}
控制器:
public ActionResult SaveList(int id, List<Exercise> exerciseList)
{
if (ModelState.IsValid)
{
foreach (var exercise in exerciseList)
{
_context.Exercise.Add(exercise);
}
_context.SaveChanges();
ModelState.Clear();
}
return View();
}
它应该一次保存多行,除Select部分外,它的工作方式完美。 第一个枚举值保存正确,但其余的插入为0.我已尝试调试,但我无法找到我的错误。