Forms Html.BeginForm未输出集合中第一项的表单

Forms Html.BeginForm未输出集合中第一项的表单,forms,razor,model-view-controller,foreach,html.beginform,Forms,Razor,Model View Controller,Foreach,Html.beginform,我正在使用MVC5,希望为集合中的每个项目显示一个表单。表单提交时将发布到其他控制器中的操作 我的剃须刀如下: @foreach (var skuInOrder in Model.Order.Skus) { using (Html.BeginForm("Delete", "SkuInOrders", new { id = skuInOrder.Id }, FormMethod.Post, new { name = skuInOrder.Id, id = skuInOrder.Id }))

我正在使用MVC5,希望为集合中的每个项目显示一个表单。表单提交时将发布到其他控制器中的操作

我的剃须刀如下:

@foreach (var skuInOrder in Model.Order.Skus)
{
    using (Html.BeginForm("Delete", "SkuInOrders", new { id = skuInOrder.Id }, FormMethod.Post, new { name = skuInOrder.Id, id = skuInOrder.Id }))
    {
        <input id="orderId" name="orderId" value="Model.Order.Id" type="hidden" />
        <input type="submit" class="btn btn-default" value="Delete" />
    }
}
@foreach(Model.Order.Skus中的var skuinoorder)
{
使用(Html.BeginForm(“Delete”,“SkuInOrders”,new{id=skuInOrder.id},FormMethod.Post,new{name=skuInOrder.id,id=skuInOrder.id}))
{
}
}
此代码适用于集合中除第一个项目外的所有项目

对于第二项之后的项目,将显示表单元素并按预期工作,但不会为第一项输出表单。相反,我只是得到两个元素,而不是在一个元素中

这是一个通过Firefox开发工具输出HTML(集合中有2个项目)的示例。请注意,第一个项目没有表单,输入将单独显示,但第二个项目有表单

我无法发布图像,因为我没有足够的代表,但您可以从此处下载:

更新 我现在发现,即使使用标准HTML表单(不仅仅是@HTML.beginForm),我也会有这种行为。例如,此代码还删除了第一个项目的表单元素,但不删除后续项目的表单元素

<form action="/SkuInOrders/Delete/@skuInOrder.Id" method="post" >
    <input id="orderId" name="orderId" value="@Model.Order.Id" type="hidden" />
    <input type="submit" class="btn btn-default" value="Delete" />
</form>

现在已解决此问题。。。这是因为我有嵌套表单(整个页面是一个编辑页面,所以被包装在表单中)


这个问题说明了这一点:

谢谢,这让我发疯了!