Частичное представление не отображается правильно с Dynami c ID? - PullRequest
0 голосов
/ 27 апреля 2020

Я пытаюсь сделать частичное представление (повторно используемое), чтобы удалить клиента с cus_id в таблице (список клиентов), но каждый раз, когда я отправляю форму, отправляется только первый идентификатор строки, скажите мне правильное решение.

 @foreach (var item in Model)
   {
    ....
    <td>
      @await Html.PartialAsync("~/Views/Shared/Modal.cshtml", item.cus_id)
         @*<partial name="~/Views/Shared/Modal.cshtml" for="@item.cus_id"/>*@

      </td>


   }

Вот мой взгляд

@model int


<span>
    <a href="#/" data-toggle="modal" data-target="#myModal"><i class="fas fa-trash-alt" title="Delete"></i></a>
</span>

<div id="myModal" class="modal fade" role="dialog">
    <div class="modal-dialog">

        <!-- Modal content-->
        <div class="modal-content">
            <div class="modal-header ">
                <h4 class="modal-title">Warning</h4>
                <button type="button" class="close" data-dismiss="modal">&times;</button>
            </div>
            <div class="modal-body">
                <form asp-action="Delete" asp-route-id="@Model" method="post">
                    <span>
                        <span><b>Are you sure you want to delete?</b></span>
                        <button type="submit" class="btn btn-danger">Yes</button>
                        <a href="#/" class="btn btn-primary" data-dismiss="modal">No</a>
                    </span>
                </form>
            </div>

        </div>

    </div>
</div>

1 Ответ

1 голос
/ 28 апреля 2020

Проблема в вашем частичном представлении.

<a href="#/" data-toggle="modal" data-target="#myModel"><i class="fas fa-trash-alt" title="Delete"></i></a>

Вы использовали селектор идентификатора, он всегда будет выбирать первый модал с идентификатором "myModel". Хотя все модальные идентификаторы одинаковы. Таким образом, при каждой отправке отправляется только первый идентификатор строки.

Вы можете применить cus_id к модальному идентификатору, чтобы различать guish, какой модальный должен быть открыт.

<span>
    <a href="#/" data-toggle="modal" data-target="#myModal_@Model"><i class="fas fa-trash-alt" title="Delete"></i></a>
</span>

<div id="myModal_@Model"  class="modal fade" role="dialog">
    <div class="modal-dialog">

        <!-- Modal content-->
        <div class="modal-content">
            <div class="modal-header ">
                <h4 class="modal-title">Warning</h4>
                <button type="button" class="close" data-dismiss="modal">&times;</button>
            </div>
            <div class="modal-body">
                <form asp-action="Delete" asp-route-id="@Model" method="post">
                    <span>
                        <span><b>Are you sure you want to delete @Model?</b></span>
                        <button type="submit" class="btn btn-danger">Yes</button>
                        <a href="#/" class="btn btn-primary" data-dismiss="modal">No</a>
                    </span>
                </form>
            </div>
        </div>
</div>

...