ASP.NET Основная форма MVC не вводит значения из цикла foreach

#html #asp.net-core-mvc

Вопрос:

Я пытаюсь создать форму для записи количества билетов, которые пользователь хотел бы получить за товар.

введите описание изображения здесь

Однако добавляется только первое 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> }  

Ответ №1:

попробуйте заменить цикл foreach на цикл for

 @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 }