在部分视图中具有模态绑定的Ajax模态弹出窗口

问题描述

我试图找到一个解决方案一段时间,但是找不到一个解决方案...我有绑定到模态的局部视图,它在网格中显示数据。像下面这样

@model abc
@Html.Grid(Model)
{
    grid columns
    column with edit link
}

在网格上通过ajax单击编辑链接,我想在绑定到另一个模型的局部视图中显示弹出窗口。这个引导弹出窗口也应该通过模型绑定来绑定,因为当我单击弹出窗口的提交时,我需要执行服务器端验证

@model pqr
<div>
   popup window with grid columns displayed in form for editing.
</div>

任何有关示例代码的帮助都会大有帮助。

解决方法

可能还有其他方法可以做到这一点,但是我之前是这样做的:

  1. 您的编辑链接必须具有id作为要作为参数传递给Controller的id

  2. 获取数据并将模型传递到填充了属性的局部视图

    $(".YourEditLinkClass").click(function () {
       var id = $(this).attr('id');
       $.ajax({
          url: "@Url.Action("GetDataForPopUpWindow","YourController")",type: "GET",dataType: "html",data: { id: id },success: function (data) {
              $("#modal_" + id).html(data);//target position of modal
              $('#pqr_' + id).modal('toggle');
            }
         });
    });
    

控制器代码:

public ActionResult GetDataForPopUpWindow(int id)
{
   using (YourDBContext)
   {
      var data = YourData;
      pqr pqrModel = new pqr();
      pqrModel.YourModelProperty = data.CorrespondingProperty;
      return PartialView("_GridPartialView",pqrModel);
   }
}

您的引导程序模态在名为_GridPartialView的部分视图中的ID必须为id="pqr_@Model.Id"。希望有道理。