Не удается передать значение из представления в контроллер с помощью jquery POST в MVC 5 - PullRequest
0 голосов
/ 05 марта 2019

Я хочу передать значение текстового поля и выбранное значение Dropdown в качестве идентификатора, который пользователь вводит с помощью метода POST jquery из представления в контроллер, но я не могу передать эти значения в какой-то момент в коде, я что-то упустил, но несмог найти мою ошибку, так как может быть несколько записей, и каждая запись отображает раскрывающийся список и текстовое поле по-разному, поэтому как я узнаю, что я использую текстовое поле с этим конкретным идентификатором, и что данные из текстового поля сохранены в этом конкретном идентификаторе, я говорю ороль data-posid для использования в посте jquery

Мой код выглядит следующим образом

 <table class="table">
            <tr>
                <th>
                    Item Name
                </th>
                <th>
                    Reorder Level
                </th>
                <th>
                    Current
                </th>
                <th>
                    Outstanding
                </th>
                <th>
                    Supplier
                </th>
                <th>
                    Quantity
                </th>
                <th></th>
            </tr>

            @foreach (var item in Laundrybooking)
            {
                <tr>
                    <td>
                        @Html.DisplayFor(modelItem => item.ItemId)
                    </td>
                    <td>
                        @Html.DisplayFor(modelItem => item.Reorder)
                    </td>
                    <td>
                        @Html.DisplayFor(modelItem => item.Currents)
                    </td>
                    <td>
                        @Html.DisplayFor(modelItem => item.Outstanding)
                    </td>
                    <td>
                        @Html.DropDownList("SIId", null, new { @data_posid="@item.POSId", @class = "form-control", @type = "text"})
                    </td>
                    <td>
                        <input data-posid="@item.POSId" type="text" id="qty" class="qty form-control" placeholder="Quantity" />
                    </td>
                    <td>
                        <button data-posid="@item.POSId" class="addQty btn btn-default"><i class="fas fa-save"></i></button>
                    </td>

                </tr>
            }

        </table>


   $(function () {
        $('#SIId').change(function () {
            $('.addQty').click(function () {
                $.post("@Url.Action("AddQuantity", "PurchaseOrder")", { id: $(this).data('posid'), Qty: $('#qty').val(), Siid: $("select option:selected").val() })
            });   
        });
});


    public ActionResult AddQuantity(decimal? Qty, int id, int Siid)
    {
        var posid = db.SingleOrDefault<POStaging>(id);
        if (ModelState.IsValid)
        {
            posid.Qty = Qty;
            posid.SIId = Siid;
            db.Update(posid);
        }
        return RedirectToAction("Index");
    }

Пожалуйста, помогите мне с этим

1 Ответ

0 голосов
/ 05 марта 2019

Проблема с этим кодом

 $('#SIId').change(function () {
   $('.addQty').click(function () {
      $.post("@Url.Action("AddQuantity", "PurchaseOrder")", { id: $(this).data('posid'), Qty: $('#qty').val(), Siid: $("select option:selected").val() })
       });   
  });

Здесь вы регистрируете событие click для кнопки на onChange событии DropDownList, что нормально, но это не triggersсобытие click этого button и, следовательно, никакого вызова post не происходит, вам нужно click на button, чтобы выполнить вызов post.кроме того, что все выглядит хорошо, я попробовал это, и он публикует данные.

Надеюсь, это поможет или дайте мне знать, если я что-то здесь упускаю ... Удачного кодирования ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...