C# 用于循环内绑定和路由值问题的asp

C# 用于循环内绑定和路由值问题的asp,c#,asp.net,asp.net-core,razor,C#,Asp.net,Asp.net Core,Razor,我正在建立一个小网站,用户可以在其中管理个人装备,其中有一个名字和其他属性的质量。我想在表格中显示所有这些齿轮,使用绑定到每个项目的输入框,这样用户可以根据需要更改值,然后点击编辑按钮并更新齿轮数据库。我可以让我的foreach循环绑定所有正确的值,但是当它路由到处理程序时,它总是将EditGearName和EditGearMass值设置为第一行中的任何值 @foreach(型号齿轮中的var g){ 拯救 } 它总是将EditGearName和EditGearMass值设置为第一行中的任

我正在建立一个小网站,用户可以在其中管理个人装备,其中有一个名字和其他属性的质量。我想在表格中显示所有这些齿轮,使用绑定到每个项目的输入框,这样用户可以根据需要更改值,然后点击编辑按钮并更新齿轮数据库。我可以让我的foreach循环绑定所有正确的值,但是当它路由到处理程序时,它总是将EditGearName和EditGearMass值设置为第一行中的任何值


@foreach(型号齿轮中的var g){
拯救
}
它总是将EditGearName和EditGearMass值设置为第一行中的任何值

您应该在foreach循环中添加form标记,以便为一行启用一次提交

<table>
    <form>
    @foreach (var g in Model.Gears) {
    <tr class="list-table-main">
        <td><input class="form-control" asp-for="EditGearName" value="@g.GearName" /></td>
        <td><input class="form-control" asp-for="EditGearMass" value="@g.Mass" type="number" min="0" /></td>
        <td style="width:12.5%"><button type="submit" asp-page-handler="EditGear" asp-route-groupid="@gg.ID">Save</button></td>
    </tr>
    }
    </form>
</table>

@foreach(型号齿轮中的var g){
拯救
}
它总是将EditGearName和EditGearMass值设置为第一行中的任何值

您应该在foreach循环中添加form标记,以便为一行启用一次提交

<table>
    <form>
    @foreach (var g in Model.Gears) {
    <tr class="list-table-main">
        <td><input class="form-control" asp-for="EditGearName" value="@g.GearName" /></td>
        <td><input class="form-control" asp-for="EditGearMass" value="@g.Mass" type="number" min="0" /></td>
        <td style="width:12.5%"><button type="submit" asp-page-handler="EditGear" asp-route-groupid="@gg.ID">Save</button></td>
    </tr>
    }
    </form>
</table>

@foreach(型号齿轮中的var g){
拯救
}

我不确定它是否会传递正确的值,因为它抛出了一个警告“元素'form'不能嵌套在元素'table'中,但它仍然有效!谢谢。可以!我还决定将表更改为div标记的集合,这样它才是更合适的HTML(因为标记不应该在表中)@FlippinsweetBen,是的,div集合更合适。我不确定它是否会传递正确的值,因为它会抛出一条警告:“元素‘form’不能嵌套在元素‘table’中,但它仍然有效!”!谢谢,我会的!我还决定从一个表改为一个div标记集合,这样它就更适合HTML(因为标记不应该在表中)。@flipinsweetben,是的,div集合更合适。