2011-01-26 70 views
12

Tôi cần tạo cửa sổ bật lên trong mvc (không phải tab mới trong trình duyệt). Có ai biết cách để làm điều này không?Cửa sổ bật lên MVC-pop

+0

Tôi đã cập nhật câu trả lời theo yêu cầu mới nhất của bạn (địa chỉ url mở trong hộp thoại). Tôi hy vọng nó sẽ giúp bạn :) –

Trả lời

34

Một khả năng là sử dụng jquery ui dialog.

EDIT

Ý tưởng sẽ có một hành động ajax trả về một cái nhìn cục bộ. Kết quả của hành động đó (html) được đặt bên trong thùng chứa của cửa sổ bật lên và trên trình xử lý thành công của cuộc gọi ajax, bạn mở cửa sổ bật lên. Dưới đây là một số mẫu mã:

@Ajax.ActionLink("Open popup", "SomeAction", new AjaxOptions { HttpMethod = "GET", UpdateTargetId = "result", InsertionMode = InsertionMode.Replace, OnSuccess="openPopup" })<br /> 

<div id="result" style="display:none;"></div> 

<script type="text/javascript"> 
$(document).ready(function() { 
    $("#result").dialog({ 
     autoOpen: false, 
     title: 'Title', 
     width: 500, 
     height: 'auto', 
     modal: true 
    }); 
}); 
function openPopup() { 
    $("#result").dialog("open"); 
} 
</script> 

Sau đó, bạn cần phải thêm các hành động trong bộ điều khiển mà trả về xem phần

[HttpGet] 
public PartialViewResult SomeAction() 
{ 
     return PartialView(); 
} 

Nơi bất cứ điều gì bạn cần trong giao diện phần, bạn cũng có thể bao gồm các thông số trong hành động, v.v.

Chúc may mắn!

+0

Tôi cần phải vượt qua địa chỉ url sẽ được mở trong cửa sổ pop up phương thức, và tôi không chắc chắn làm thế nào để làm điều đó với jquery .. Bất kỳ ý tưởng? – Cipiripi

+0

Tôi đã chỉnh sửa câu trả lời của mình, vui lòng kiểm tra câu trả lời. – uvita

+0

Nó sẽ mở ra một số div như một nội dung hộp thoại phải không? Nhưng làm thế nào để mở một số trang khác trong hộp thoại? –

3

Cách rõ ràng nhất là sử dụng một trong các khung công tác js. Cá nhân tôi prefere jQuery UI hộp thoại kiểm soát.
Vui lòng kiểm tra http://jqueryui.com/demos/dialog/ để biết thông tin chi tiết về nó.
Ngoài ra bạn có thể kiểm tra ASP.NET MVC modal dialog/popup best practice (câu hỏi của nó tương tự như của bạn)

Tất nhiên nếu bạn cần một số đơn giản sổ popup bạn luôn có thể sử dụng alert('Im popup');

Cập nhật theo yêu cầu mới nhất của bạn
Để mở một số url trong mới cửa sổ bạn có thể sử dụng javascript tiếp theo:

function OpenDialog() { 
window.open("some url", "DialogName", "height=200,width=200,modal=yes,alwaysRaised=yes"); 
} 

Nhưng kết quả thực sự phụ thuộc vào trình duyệt. Hầu hết trong số họ mở cửa sổ phương thức này không phải trong tab mới nhưng trong phiên bản trình duyệt mới.
Chủ đề này có thể giúp bạn:
JavaScript open in a new window, not tab

Các vấn đề liên quan