问题描述
我试图找到一个解决方案一段时间,但是找不到一个解决方案...我有绑定到模态的局部视图,它在网格中显示数据。像下面这样
@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>
任何有关示例代码的帮助都会大有帮助。
解决方法
可能还有其他方法可以做到这一点,但是我之前是这样做的:
-
您的编辑链接必须具有id作为要作为参数传递给Controller的id
-
获取数据并将模型传递到填充了属性的局部视图
$(".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"
。希望有道理。