2011-01-26 11 views
12

mvcでポップアップウィンドウを作成する必要があります(ブラウザの新しいタブではありません)。誰もこれを行う方法を知っていますか?MVCポップアップウィンドウ

+0

私はあなたの最新の要件(ダイアログで開いているURLアドレス)に応じて私の答えを更新しました。私はそれがあなたを助けることを願っています:) –

答えて

34

jquery ui dialogの1つの可能性があります。

EDIT

アイデアが部分図を返すAjaxのアクションを持っているだろう。そのアクション(html)の結果は、ポップアップのコンテナ内に配置され、ajaxコールの成功ハンドラにはポップアップが開きます。ここではいくつかのサンプルコードは次のとおりです。

@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> 

次にあなたが部分図に必要なものは何でも

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

場所は、あなたも中にパラメータを含むことができる部分ビューを返し、コントローラにアクションを追加する必要がありますアクションなど

幸運!

+0

モーダルポップアップで開かれるURLアドレスを渡す必要があります、そして、私はjqueryでそれを行う方法がわかりません。 – Cipiripi

+0

私は私の答えを編集しました、それを確認してください。 – uvita

+0

ダイアログの内容として一部のdivが開きますか?しかし、ダイアログで他のページを開く方法は? –

3

最も明白な方法は、jsフレームワークの1つを使用することです。個人的に私はjQuery UIのダイアログコントロールを優先しています。
詳細については、http://jqueryui.com/demos/dialog/をご確認ください。
また、あなたはいくつかの簡単なポップアップが必要な場合は、常に新しい中にいくつかのURLを開く最新のリクエスト
に従ってalert('Im popup');

アップデートを使用することができASP.NET MVC modal dialog/popup best practice(あなたに似て、それの質問)もちろん

をチェックしてあなたは次のjavascriptを使用することができます:

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

結果は実際にブラウザによって異なります。彼らのほとんどは新しいタブではなく新しいブラウザインスタンスでこのモーダルウィンドウを開きます。
このトピックでは、aswellあなたを助けるかもしれない:
JavaScript open in a new window, not tab

関連する問題