我在viewModel
中有一个列表,并尝试将该列表与html表绑定。首先我尝试foreach loop
,它生成表但是在表单提交时它总是向控制器发送空列表。
然后在搜索时,我知道我已经使用for loop
进行绑定..现在我尝试了这样的循环
@for(int i =0; i< Model.lstTrainingCourses.Count; i++)
{
<tr>
<td hidden>@Html.HiddenFor(tc => Model.lstTrainingCourses[i].UserTrainingCoursesDetailId)</td>
<td hidden>@Html.DisplayFor(tc => Model.lstTrainingCourses[i].TrainingCourses)</td>
</tr>
}
但它只发送第一列值,并在表单提交的列表中将第二列作为null传递。
我也试过了@Html.TextBoxFor
,但它在表格中提供了一个我不需要的文本框。
然后我改变了这样的第二列;
<td hidden>@Html.HiddenFor(tc => Model.lstTrainingCourses[i].TrainingCourses)</td>
<td>@Html.DisplayFor(tc => Model.lstTrainingCourses[i].TrainingCourses)</td>
它完全符合我的要求。但是我要再次重复相同的列进行绑定。所以我需要建议这种方法是好还是不好?任何形式的帮助将不胜感激。
更新:使用@ Html.TextBoxFor进行只读
我甚至试过这个(仅在第一栏)
<td>@Html.TextBoxFor(tc => Model.lstTrainingCourses[i].TrainingCourses, new { @readonly = true })</td>
,结果就是这个
它使textbox readonly但是在列中显示文本框,甚至没有正确绑定它的值。我希望列像第二个(开始日期)。