显示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。 它工作得很好。

http://www.matthidinger.com/archive/2011/02/22/Progressive-enhancement-tutorial-with-ASP-NET-MVC-3-and-jQuery.aspx

在不知道你的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”。