2012-03-16 37 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。

相關問題