Как разместить значения каждого элемента в модели из представления в контроллер в виде списка или массива? - PullRequest
0 голосов
/ 21 мая 2018

пример просмотра списка приоритетов заказов У меня есть модель заказов, мне нужно, чтобы пользователь упорядочил заказы в порядке приоритета по номерам.для каждого заказа разный номер приоритета и отправьте на контроллер идентификатор заказа и номер приоритета, который он выбрал для заказа.отправить его на контроллер в виде списка / массива пар (id, position).

, а также как получить в actionResult список / массив пар значений.

это мой PackerController:

    public ActionResult SetByCity(int? id)
    {
        if (id == null)
        {
            return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
        }

        var supplier = db.Suppliers.Where(s => s.Id == id).FirstOrDefault();

        var mySupplierOrders = db.Orders.Where(o => o.SupplierId == supplier.Id && o.SupplierApproval == 1).Include(o => o.Clients).Include(o => o.Suppliers);
        return View(mySupplierOrders.OrderBy(o => o.Clients.BusinessAddress).ToList());           
    }

, и это представление для "SetByCity":

    @foreach (var item in Model)
    {
        <tr>
            <td>
                @Html.DisplayFor(modelItem => item.Id)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.Clients.BusinessName)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.Clients.BusinessAddress)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.CreateDate)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.PayDate)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.Discount)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.TotalPrice)
            </td>
            <td>
                <form method="post" action="@Url.Action("SetOrdersPosition", "Packer")" id="editform">
                    <input type="hidden" name="Id" value="@item.Id">
                    <input type="number" name="Position" min="1" max="@Model.Count()">@*i need to put all the positions and id's of all the items in a pairs list and send it to the controller*@
                </form>
            </td>
        </tr>
    }
</table>
<input type="submit" value="send" form="editform" />

, и это получение actionResult "SetOrdersPosition" в PackerController:

    [HttpPost]
    public ActionResult SetOrdersPosition(List<id,position>)
    {
        //does something...
    }

я не знаю, что добавить в параметры, которые получает SetOrdersPosition ...

1 Ответ

0 голосов
/ 21 мая 2018

Надеюсь, вы используете название модели под названием «Поставщики».Так что в методе get передайте это в поле зрения.Вам необходимо внести небольшие изменения, чтобы использовать начальную форму в своем представлении, чтобы вы могли напрямую публиковать данные модели в контроллере.Используйте этот предмет внутри тела.Не забудьте объявить модель, которую вы используете, на странице просмотра, как показано ниже.@model MVC.Models.Suppliers

@using (Html.BeginForm("SetOrdersPosition", "Packer", FormMethod.Post))
    {
      <table>
        @foreach (var item in Model)
           {
     <tr>
        <td>
            @Html.DisplayFor(modelItem => item.Id)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Clients.BusinessName)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Clients.BusinessAddress)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.CreateDate)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.PayDate)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Discount)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.TotalPrice)
        </td>
        </tr>
         <tr>
            <td><input type="submit" value="Submit"/></td>
      </tr>
     }
     </table>
}

Код контроллера [HttpPost]

 public ActionResult SetOrdersPosition(Suppliers _suppliers)
  {
    //does something...
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...