2012-03-16 36 views
4

我需要在ASP.NET MVC 3中弹出一个完整视图(.cshtml网页)。目前,要成为弹出窗口的网页由MVC控制控制器并表现为另一种观点。当从另一个.cshtml网页点击一个按钮时,弹出网页将显示,并且当点击该按钮时,我不想退出原始视图。我正在考虑使用jquery.show()将视图作为弹出窗口,尽管这不是必需的。我需要做些什么改变?如何以弹出形式显示ASP.NET MVC 3视图

+0

这里是一个整洁的[文章](http://yassershaikh.com/how-to-create-a-modal-popup-in-asp-net-mvc-3-using-jquery/)... – Yasser 2012-09-26 11:54:19

回答

0

完成此操作的一种方法是使用http://fancybox.net/,并将新网页作为iframe加载到fancybox中。查看fancybox在底部的示例。

jQuery.show()与创建弹出窗口无关。它用于隐藏/显示DOM中的元素。

2

进行AJAX调用动作的URL,像...

$.ajax({ 
     url: "@Url.Action("youractionname")" 
     ,type: "POST" 
     ,data: data 
     ,success: function(response) 
     { 
      $(document).append("<div class='popup'>" + response + "</div>"); 
     } 
    }); 

显然,你的HTML可能需要调整了一下,也许是模态div来阻止访问以下网页,并且需要定义.popup以使其显示为弹出式窗口。

5

做一个jquery ajax调用是这样的:

 $.ajax({ 
      url: /myController/Popup, 
      type: 'GET', 
      data: id, 
      success: function (result) { 
       $("#myTag").html(result); 
      } 
     }); 

然后在控制器只返回一个局部视图,这样的事情:

public ActionResult Popup(int id) 
    { 

     /* construct the viewmodel */ 
     myViewModel = .... 
     . 
     return PartialView("MyPartialView", myViewModel); 
    } 

这部分观点将被添加到myTag。

相关问题