2011-07-06 95 views
0

我已經在我的項目中創建了一個模態對話框,我可以在模態對話框中加載partialview /視圖,問題是在視圖中,我有3個選項卡,每個標籤都引用另一個partialview。當我點擊這些標籤時,它會在父頁面(鏈接到模式對話框的頁面)中帶來相關的partialview,而不是在模態對話框內移動標籤。 任何人都曾經遇到過這個問題?mvc3與標籤的模式對話框

我會很感激任何幫助或類似的例子,我可以通過。

這是我的代碼 jQuery的(文件)。就緒(函數(){

 $('.trigger').live('click', function (event) 
     { 
       var id = $(this).attr('rel');  
       var dialogBox = $("<div>"); 
         $(dialogBox).dialog({ 
           autoOpen: false, 
           resizable: true, 
           title: 'Test Modal Dialog', 
           modal: true, 
           show: "blind", 
           hide: "blind", 
           open: function (event, ui) { 

             $(this).load('<%=Url.Action("action1","controllerName")%>'); 
                      } 



            }); 
             $(dialogBox).dialog('open'); 
            }); 

,然後我有4個局部視圖第一種是動作1:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<NeboAlertManagement.Models.model>" %> 
「類型=」文本/ JavaScript的 「> 」 類型= 「文本/ JavaScript的」> 「類型=」 文本/ JavaScript的 「> 」 類型= 「文本/ JavaScript的」>
 <div id="tabContainer"> 
     <ul id="menu"> 


      <li><%= Html.ActionLink("Home", "action2", "controllername")%></li> 
      <li><%= Html.ActionLink("Products", "action3", "controllername")%></li> 
      <li><%= Html.ActionLink("Contact Us", "action4", "controllername")%></li> 


     <%-- <li><%= Html.RenderPartial("action2")%></li> 
      <li><%= Html.RenderPartial("action3")%></li> 
      <li><%= Html.RenderPartial("action4")%></li>--%> 


     </ul> 
     </div> 
     <% } %> 

和其他三個partialviews是簡單的測試視圖,但如果它幫助我可以發佈它們!

謝謝!

+0

要分享的任何代碼? –

+0

注意到任何JavaScript錯誤? –

+0

對不起,但我不明白!你能給出更多解釋嗎? – Sue

回答

0

你應該爲你的鏈接標籤賦予一個'trigger'類,以便jquery live能夠捕獲它們。

Html.ActionLink("Text", "Action", new { controller = "Home" }, new { @class = "trigger" }) 

,並在單擊處理程序的頂部使用

$('.trigger').live('click', function (event) 
{ 
    event.preventDefault() 
    var uriToLoad = $(this).attr('href'); 

之前裝載值到彈出 - 確保您使用相同的彈出窗口。因爲現在你每次創建新的彈出窗口。所以:

// popup already present 
if($('#mypopupid').length > 0 && $('#mypopupid').dialog("isOpen")) { 
    $('#mypopupid').load(uriToLoad); 
} else { // rest of the code - give popup id 
    var dialogBox = $('<div id="mypopupid" />') 
} 

如果popup已經存在使用它,如果沒有打開新的。

+0

我很感謝你的迴應,我試過它沒有奏效,當我點擊選項卡時,它會關閉我的模態對話框並在主頁面打開局部視圖,謝謝各位 – Sue

+0

嘗試編輯後的版本。 – llapinski

+0

我試了一下,它部分地幫助它沒有關閉對話框,並再次進入主頁面,但是當我點擊該選項卡時,它會打開另一個對話框的相同模式對話框(而不是打開點擊的局部視圖所以我最終在我的頁面上有幾個模態對話框,不知道爲什麼會發生這種情況,並感謝您的幫助! – Sue