2012-07-31 177 views
0

開發一個ASP.NET MVC 3應用程序(我的第一個),並遇到了jQuery的一些麻煩,因爲我從來沒有用過它。我試圖在模態對話框中打開特定搜索結果的詳細信息。jquery ui popup MVC 3 not firing

相關剃刀代碼:

@foreach (var item in Model.claims) 
    { 
     <tr> 
      <td>@Html.ActionLink(item.CLAIMMASTID.Substring(Math.Max(0,item.CLAIMMASTID.Length-1)), "ClaimDetail", new {@id=item.CLAIMMASTID}, new {@class="ClaimsDetail"})</td> 
     </tr> 
    } 

而且那麼控制器設置爲顯示的局部視圖:

public ActionResult ClaimDetail() 
    { 
     return PartialView("_ClaimDetail"); 
    } 

所有好爲止,是嗎?那就是我所想的。所以我的jQuery腳本看起來這樣,這就是我認爲問題在於:

$(function() { 
    $('#ClaimsDialog').dialog({ 
     autoOpen: false, 
     width: 800, 
     resizable: true, 
     modal: true 
    }); 
    $('.ClaimsDetail').live("click", function() { 
     var target = $(this).attr('href'); 
     $.get(target, function (result) { 
      ('#ClaimsDialog').html(result); 
      ('#ClaimsDialog').dialog({ 
      }); 
     }); 
     return false; 
    }); 
+0

http://stackoverflow.com/questions/1328723/how-to-generate-a-simple-popup-using-jquery可能會有所幫助 – Yasser 2012-07-31 13:06:59

+0

調試VS2010中的代碼,並查看它到達相關行時的內容。在IE中啓用調試(工具 - > internet選項 - >高級,取消選中'禁用腳本調試'),運行解決方案並在IE中打開網頁。我今天不得不這樣做,當調用valid()方法什麼也沒做,結果我錯過了一個腳本引用。同樣如DanielB所說,live()從1.43開始被棄用,默認情況下MVC3使用的是最低版本1.5(1.8是jQuery UI版本,而不是jQuery!) – 2012-07-31 17:26:31

回答

1

更換

$.get(target, function (result) { 
     ('#ClaimsDialog').html(result); 
     ('#ClaimsDialog').dialog({ 
     }); 
    }); 

$.get(target, function (result) { 
     $('#ClaimsDialog').html(result).dialog('open'); 
    }); 
+0

這還沒有做任何事情。讓我看看螢火蟲告訴我什麼 – 2012-07-31 13:15:10

+0

會發生什麼? ajax調用是否被執行?你正在使用哪個版本的jquery? 'live()'自1.4.3開始被棄用。 – DanielB 2012-07-31 13:19:01

+0

根據螢火蟲執行該調用。並右鍵單擊「在新標籤頁/窗口中打開」兩個工作。 1.8.11 – 2012-07-31 13:30:08