我的html页面的模型是列表形式。我想在这里输入考试成绩,但是当我输入考试成绩时,我的数据不会转到我的actionResult类型函数中。实际上,当我将整数值写入输入时,它不会保存其值。该数据库还列出了我手动编写的值,但仍未将数据带到函数中。
我的html代码:
@model IEnumerable<OnlineBasvuru.Entity.ViewModel.ExamViewModal>
@{
Layout = null;
}
<div>
@using (Html.BeginForm("Save", "Exam", FormMethod.Post))
{
<table class="table">
<thead>
<tr>
<th>
StudentId
</th>
<th>
Note
</th>
</tr>
</thead>
<tbody>
@foreach (var item in Model.ToList())
{
<tr>
<td>
@Html.Label(item.StudentId.Value.ToString())
</td>
<td>
@Html.EditorFor(modelItem => item.Note)
</td>
</tr>
}
</tbody>
</table>
<button type="submit">Save</button>
}
</div>
我的控制器代码:
[HttpPost]
public ActionResult Save(ICollection<ExamViewModal> nwModal) // Normally nwModal should be listed as a list of the model and the data should be in
{
foreach (ExamViewModal modal in nwModal)
{
EXAM exam = examService.Get(modal.Id);
exam.NOTE = modal.Note;
examService.Save(exam );
}
return RedirectToAction("ExamList", "Exam");
}
请告诉我一种我不知道该怎么做的方法。谢谢。
答案 0 :(得分:1)
尝试使用for
循环而不是foreach
。然后,将使用索引设置name属性,而不是为循环中的每个项目吐出相同的名称。
例如:
for (int i = 0; i < Model.Count(); i++) {
Html.EditorFor(m => Model[i].Note)
}