【问题标题】:ASP.NET Core MVC Form not input values from foreach loopASP.NET Core MVC 表单不输入来自 foreach 循环的值
【发布时间】:2021-10-13 18:50:29
【问题描述】:

我正在尝试创建一个表单来获取用户想要购买某项商品的票数。

但是,只有第一个 item_id 被添加,如果我在项目 2 或 3 中输入值,则表中没有任何输入。

下面是我用来将数据传递给我的控制器的视图。

欢迎提出任何建议。

@model IEnumerable<HR.HolidayFamiliesApplication.Web.Models.RaffleList>

@{
    ViewData["Title"] = "RaffleList";
}

@using (Html.BeginForm("InsertRecords", "Home", FormMethod.Post))
{
    <table class="table">
        <tr>
            <th>
                @Html.DisplayNameFor(model => model.Raffle_ID)
            </th>
            <th>
                @Html.DisplayNameFor(model => model.Raffle_Item_Name)
            </th>
            <th>
                @Html.DisplayNameFor(model => model.Raffle_Item_Description)
            </th>
            <th></th>
        </tr>

        @foreach (var item in Model)
        {
            <tr>
                <td>
                    @Html.DisplayFor(modelItem => item.Raffle_ID)
                    <input type="hidden" name="Raffle_ID" value=@Html.DisplayFor(model => @item.Raffle_ID) />
                </td>
                <td>
                    @Html.DisplayFor(modelItem => item.Raffle_Item_Name)
                    <input type="hidden" name="Raffle_Item_Name" value=@Html.DisplayFor(model => @item.Raffle_Item_Name) />
                </td>
                <td>
                    @Html.DisplayFor(modelItem => item.Raffle_Item_Description)
                    <input type="hidden" name="Raffle_Item_Description" value=@Html.DisplayFor(model => @item.Raffle_Item_Description) />
                </td>
                <td>
                    <label for="Number_of_Tickets">Number_of_Tickets</label>
                    <input type="number" class="form-control" name="Number_of_Tickets" placeholder="Enter # Tickets" />
                </td>
                <td>
                    <input type="hidden" name="User_Name" value=@User.Identity.Name />
                </td>
                <td>
                    <input class="btn btn-success" type="submit" value="Submit" id="InsertRecords" />
                </td>
            </tr>
        }

    </table>
}

【问题讨论】:

    标签: html asp.net-core-mvc


    【解决方案1】:

    尝试用for循环替换foreach循环

    @model List<HR.HolidayFamiliesApplication.Web.Models.RaffleList>
    
    ....
    
    @for (var i=0;  i < Model.Count; i++)
            {
                <tr>
                    <td>
                        @Html.DisplayFor(model=> model[i].Raffle_ID)
                        <input type="hidden" name="Raffle_ID" value=@Html.DisplayFor(model=> model[i].Raffle_ID) />
                    </td>
                    <td>
                        @Html.DisplayFor(model=> model[i].Raffle_Item_Name)
                        <input type="hidden" name="Raffle_Item_Name" value=@Html.DisplayFor(model=> model[i].Raffle_Item_Name) />
                    </td>
                    <td>
                        @Html.DisplayFor(model=> model[i].Raffle_Item_Description)
                        <input type="hidden" name="Raffle_Item_Description" value=@Html.DisplayFor(model=> model[i].Raffle_Item_Description) />
                    </td>
                    <td>
                        <label for="Number_of_Tickets">Number_of_Tickets</label>
                <input type="number" class="form-control" asp-for="@model[i].Number_of_Tickets" placeholder="Enter # Tickets" />
                    </td>
    ..... and so on
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-24
      • 1970-01-01
      • 1970-01-01
      • 2020-03-06
      • 2021-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多