显示MVC3局部视图的Jquerymodal dialog – 仅首次单击
public ActionResult MeanQ(int id) { Access access= db.Access.Find(id); return PartialView("_MeanQPartial", access); }
在上面的代码中呈现的局部视图显示在对话框模态(Jquery)中…在Jquery模式对话框中显示局部视图的链接(onclick)适用于第一次单击。 关闭该对话框并再次单击该链接后,部分视图无法在弹出窗体中按预期打开。 它将作为浏览器中的新页面打开。 如何让弹出modal dialog链接每次都以相同的方式工作?
Javascript代码如下(Jquery Modal Dialog):
$(document).ready(function () { //initialize the dialog $("#result").dialog({ width: 400, resizable: true, position: 'center', title: 'Access info', autoOpen: false, buttons: { "Ok": function () { $(this).dialog("close"); } } }); }); $(function () { $('#modal').click(function () { //load the content from this.href, then turn it into a dialog. $('#result').load(this.href).dialog('open'); return false; }); });
触发modal dialog的HTML链接:
@Html.ActionLink("PopUp", "MeanQ", new { id = item.AccID }, new { id = "modal" })
最近我还遇到了一个更薄的问题,我想要使用部分和全剃刀视图。 我按照以下文章来实现我的modal dialog。 它工作得很好。
在不知道你的JavaScript的情况下,我猜你在加载PartialView
时会以某种方式替换元素,因为你提到
在加载模态后执行默认操作。
例如
$("#someA").click(function(){ //loads the modal and replaces #someA });
尝试使用.live()
:
$("#someA").live("click", function(){ //loads the modal and replaces #someA, but still works since you used live() });
如果元素具有公共父级,则更好,您可以使用.delegate()
$("#someParentOfA").delegate("#someA", "click", function(){ });
你在使用MVC3吗? 如果您返回“PartialViewResult”,它可能会有所帮助,而不是返回“ActionResult”。