带有TextBoxFor的MVC在循环中具有相同的id

时间:2013-06-06 06:31:57

标签: asp.net-mvc-4

我想在表单中有一个表,带有更新按钮。理想情况下,每一行都是一个表单,但这不符合html规范。

我的观点看起来像这样

@model IEnumerable<DabTrial.Models.ManageFilesModel>

@foreach(var item in Model) {
<tr>
    <td>
        @Html.TextBoxFor(modelItem=>item.Name)
        ....

当我查看标记时,同一属性的每一行内的输入具有相同的id

<input id="item_Name" type="text" value="ParentGuardianPMH.pdf" name="item.Name">
...
<input id="item_Name" type="text" value="ParentGuardianMMH.pdf" name="item.Name">

这显然是无效的 - 我该怎么做呢。谢谢

2 个答案:

答案 0 :(得分:4)

你需要这样的东西

@for(int i=0; i< Model.Count(); i++)
{
  @Html.TextBoxFor(item => item[i].Name)
}

阅读这篇关于模型绑定到列表的帖子 http://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx

答案 1 :(得分:1)

使用for循环,而不是foreach,并且您将拥有不同的ID。