Asp.net mvc 如何在asp.net mvc中使用for循环在表单中插入多行方法

Asp.net mvc 如何在asp.net mvc中使用for循环在表单中插入多行方法,asp.net-mvc,asp.net-mvc-4,Asp.net Mvc,Asp.net Mvc 4,我编写了视图中创建操作的代码,该操作将使用for循环的表单标记在数据库中插入多行。当点击创建按钮时,它将只保存一行,所以我希望当我点击按钮时,应该创建行数 这里是查看代码 @model CarParking.Models.Area @for (int i = 1; i <= Model.NoOfParkingPlaces; i++) { using (Html.BeginForm("Create", "ParkingPlace", FormMethod.Post)) {

我编写了视图中创建操作的代码,该操作将使用for循环的表单标记在数据库中插入多行。当点击创建按钮时,它将只保存一行,所以我希望当我点击按钮时,应该创建行数

这里是查看代码

@model CarParking.Models.Area


@for (int i = 1; i <= Model.NoOfParkingPlaces; i++)
{
    using (Html.BeginForm("Create", "ParkingPlace", FormMethod.Post))
    {
        <label>AreaID:</label>
        <input id="AreaID" name="AreaID" type="text" value="@Model.AreaID" />

        <label for="Parking_IDs">Parking IDs</label>
        <input type="text" value="P.Id: @i" name="PlaceId" />

        <input type="submit" value="Create" />
    }
}

这里有一些图片我的视图看起来如何

您是说要同时在页面上发布所有表单吗

如果是这样的话-它不是那样工作的。。。一种选择是使用javascript将它们全部发布到AJAX中,但正确的方法是使用一个表单,其中包含每个ParkingPlaces

本文详细介绍了它:

@for(int i=0;im.ParkingPlaces[i].AreaId)
@EditorFor(m=>m.ParkingPlaces[i].Id)
等
}
你的动作参数变成了

public ActionResult Create(IEnumerable<ParkingPlace> ParkingPlaces)
{
公共行动结果创建(IEnumerable ParkingPlaces) {
对不起,您的问题毫无意义。请修改。
@for( int i = 0; i < Model.NoOfParkingPlaces; ++i)
{
    @Html.EditorFor(m => m.ParkingPlaces[i].AreaId)
    @Html.EditorFor(m => m.ParkingPlaces[i].Id)  
    ... etc
}
public ActionResult Create(IEnumerable<ParkingPlace> ParkingPlaces)
{