Asp.net mvc 4 MVC与TextBoxFor在循环中具有相同的id

Asp.net mvc 4 MVC与TextBoxFor在循环中具有相同的id,asp.net-mvc-4,Asp.net Mvc 4,我想在表单中有一个表,带有一个更新按钮。理想情况下,每一行都是一个表单,但这不符合html规范 我的看法是这样的 @model IEnumerable<DabTrial.Models.ManageFilesModel> @foreach(var item in Model) { <tr> <td> @Html.TextBoxFor(modelItem=>item.Name) .... @model IEnume

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

我的看法是这样的

@model IEnumerable<DabTrial.Models.ManageFilesModel>

@foreach(var item in Model) {
<tr>
    <td>
        @Html.TextBoxFor(modelItem=>item.Name)
        ....
@model IEnumerable
@foreach(模型中的var项目){
@Html.TextBoxFor(modeleItem=>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">

...

显然无效-我应该如何做。谢谢您,使用
进行
循环,而不是使用
foreach
,您将有不同的id。

您需要这样的东西

@for(int i=0; i< Model.Count(); i++)
{
  @Html.TextBoxFor(item => item[i].Name)
}
for(int i=0;iitem[i].Name) } 阅读这篇关于模型绑定到列表的文章

您可以使用<代码>文本框x()/<代码>重载(假设所有其他都是您想要的方式)来显式设置ID。您可能还需要考虑一个编辑器模板,该模板用于嵌套对象的一个级别(它看起来不像名称元素将与默认绑定器所期望的匹配)。.非常感谢..你节省了我的时间...:)