MVC Передача значения из дочернего модального в родительский модальный - PullRequest
0 голосов
/ 10 октября 2018

Добрый день!

У меня есть Index View, где, когда пользователь нажимает на кнопку из таблицы, появляется модал с другим Html.EditorFor.Первые два Html.EditorFor будут заполнены на основе выбранного значения в таблице, в то время как другие Html.EditorFor в фокусе покажут другой модал, содержащий данные.

Таким образом, в основном это Вид с модалом внутри модального .

Проблема заключается в том, что когда я нажимаю кнопку «Выбрать» на дочернем модале, он должен заполнить Html.EditorFor в родительском модале, но в результате происходит переход к представлению родительской модальной бритвы и к ранее заполненномуданные теперь удалены.Я хотел только заполнить родительский модал Html.EditorFor значением из дочернего модала.

Этот является примером видео кода.

РОДИТЕЛЬСКИЙ МОДАЛЬ (DropAppliPopup)

<div class="modal-body">

        @using (Html.BeginForm())
        {
            @Html.AntiForgeryToken()

            <div class="panel panel-primary">

                <div class="panel-heading"><h4>PETITIONER INFORMATION</h4></div>
                <div class="panel-body">

                    <div class="form-group">
                        @Html.LabelFor(model => model.petitioner_name, htmlAttributes: new { @class = "control-label" })
                        @Html.EditorFor(model => model.petitioner_name, new { htmlAttributes = new { @class = "form-control", @readonly = "readonly", @Value = @ViewBag.Petname, placeholder = @Html.DisplayNameFor(m => m.petitioner_name), @id = "petname" } })
                        @Html.ValidationMessageFor(model => model.petitioner_name, "", new { @class = "text-danger" })
                    </div>

                    <div class="form-group">
                        @Html.LabelFor(model => model.petitioner_address, htmlAttributes: new { @class = "control-label" })
                        @Html.EditorFor(model => model.petitioner_address, new { htmlAttributes = new { @class = "form-control", @readonly = "readonly", @Value = @ViewBag.Petaddress, placeholder = @Html.DisplayNameFor(m => m.petitioner_address), @id = "petaddress" } })
                        @Html.ValidationMessageFor(model => model.petitioner_address, "", new { @class = "text-danger" })
                    </div>

            <div class="panel panel-primary">
                <div class="panel-heading"><h4>PETITIONEE INFORMATION</h4></div>
                <div class="panel-body">

                    <div class="form-group">
                        @Html.LabelFor(model => model.operator_name, htmlAttributes: new { @class = "control-label" })
                        @Html.EditorFor(model => model.operator_name, new { htmlAttributes = new { @class = "form-control", @Value = @ViewBag.OName, placeholder = @Html.DisplayNameFor(m => m.operator_name), @id = "petname", onclick = "ClickTextbox()" } })
                        @Html.ValidationMessageFor(model => model.operator_name, "", new { @class = "text-danger" })
                    </div>

                    <div class="form-group">
                        @Html.LabelFor(model => model.operator_address, htmlAttributes: new { @class = "control-label" })
                        @Html.EditorFor(model => model.operator_address, new { htmlAttributes = new { @class = "form-control", @readonly = "readonly", placeholder = @Html.DisplayNameFor(m => m.operator_address), @id = "petaddress" } })
                        @Html.ValidationMessageFor(model => model.operator_address, "", new { @class = "text-danger" })
                    </div> 

        }

    </div>
</div>

РЕБЕНОК МОДАЛЬНЫЙ

<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
    <div class="modal-dialog" role="document">
        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="close" onclick = "CloseModal()" aria-label="Close">
                    <span aria-hidden="true">&times;</span>
                </button>
                <h4 class="modal-title" id="myModalLabel">
                    Modal title
                </h4>
            </div>
            <div class="modal-body">
                @{ Html.RenderAction("PayerList2");  }
            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-default" onclick = "CloseModal()">
                    Close
                </button>
            </div>
        </div>
    </div>
</div>

PayerList2 Частичное представление

  @foreach (var item in Model)
        {
            <tr>
                <td>
                    <a href="@Url.Action("DropAppliPopup","Dropped",new { opname=@item.operator_name, opmotor=@item.motor_no });">Select</a>
                </td>
                <td>
                    @Html.DisplayFor(modelItem => item.franchise_no)
                </td>
                <td>
                    @Html.DisplayFor(modelItem => item.motor_no)
                </td>
                <td>
                    @Html.DisplayFor(modelItem => item.motor_id)
                </td>
                <td>
                    @Html.DisplayFor(modelItem => item.operator_id)
                </td>
                <td>
                    @Html.DisplayFor(modelItem => item.operator_name)
                </td>
                <td>
                    @Html.DisplayFor(modelItem => item.for_year)
                </td>

            </tr>
        }

КОНТРОЛЛЕР

public ActionResult DropAppliPopup(string Objid, string Petname, string Petaddress, string opname, string opmotor)
{
   ViewBag.Year = new SelectList(db.tbl_Year.OrderByDescending(x => x.year), "year", "year");
   ViewBag.DrpReason = new SelectList(db.tbl_DroppingReason, "id", "Reason");
   ViewBag.Petname = Petname;
   ViewBag.Petaddress = Petaddress;
   ViewBag.Petid = Objid;
   ViewBag.OName = opname;
   ViewBag.OMotor = opmotor;

   return PartialView("DropAppliPopup");
}

СКРИПТ

    function ClickTextbox() {
        $('#myModal').modal('show');
        $("#myModal").modal({ backdrop: "static" });
        $("#myModal").modal({ keyboard: false });
        $('#myModal').on('shown.bs.modal', function () {
            $('#txtUserName').focus();
        });
    };
...