per*_*zzo 0 c# asp.net asp.net-mvc
我知道还有其他问题,但我想要更好的解释.
我想用我的Model.List显示一个表,在POST之后我仍然需要访问该列表.今天没有发生这种情况.
这是我的cshtml:
@foreach (var student in Model.ListSchedulingDetails)
{
<tr>
<td width="150">
@Html.DisplayFor(modelItem => student.SchedulingDate)
</td>
<td width="250">
@Html.DisplayFor(modelItem => student.TeacherName)
</td>
<td width="250">
@Html.DisplayFor(modelItem => student.StudentName)
</td>
<td width="150">
@Html.DisplayFor(modelItem => student.SchedulingHour)
</td>
<td width="250">
@Html.DisplayFor(modelItem => student.SchedulingObservation)
</td>
</tr>
}
Run Code Online (Sandbox Code Playgroud)
POST后,我的Model.ListSchedulingDetails为null.发生了什么?
这里有两件事:
DisplayFor()仅用于展示.对于发布,我们需要输入元素,如HiddenFor(),TextBoxFor()
您需要将它们编入索引以便在收集时回发,这样做foreach无济于事
你的代码需要像:
@for (int i=0; i< Model.ListSchedulingDetails.Count; i++)
{
<tr>
<td width="150">
@Html.DisplayFor(modelItem => ListSchedulingDetails[i].SchedulingDate)
@Html.HiddenFor(modelItem => ListSchedulingDetails[i].SchedulingDate)
</td>
<td width="250">
@Html.DisplayFor(modelItem => ListSchedulingDetails[i].TeacherName)
@Html.HiddenFor(modelItem => ListSchedulingDetails[i].SchedulingDate)
</td>
<td width="250">
@Html.DisplayFor(modelItem => ListSchedulingDetails[i].StudentName)
@Html.HiddenFor(modelItem => ListSchedulingDetails[i].SchedulingDate)
</td>
<td width="150">
@Html.DisplayFor(modelItem => ListSchedulingDetails[i].SchedulingHour)
@Html.HiddenFor(modelItem => ListSchedulingDetails[i].SchedulingDate)
</td>
<td width="250">
@Html.DisplayFor(modelItem => ListSchedulingDetails[i].SchedulingObservation)
@Html.HiddenFor(modelItem => ListSchedulingDetails[i].SchedulingDate)
</td>
</tr>
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
945 次 |
| 最近记录: |