2009-07-08 65 views
0

我有一個頁面,其中包含一個呈現ASP.NET MVC局部視圖的html.RenderPartial。jQuery GetJSON爲ASP.NET MVC部分視圖調用兩次

部分視圖用作jQuery對話框,並從呈現它的頁面開始操作。

問題是,在部分視圖中我想在顯示對話框時加載和存儲變量。這些數據在對話框內工作時用於查找。 但是當加載部分視圖的頁面時,partialview中的jQuery getJson會被調用兩次。爲什麼?

的局部視圖中的代碼看起來是這樣的:

<script type="text/javascript"> 
$(function() { 
    var groups = null;  

    $.getJSON("/RessourceGroup/List", null, function(data) { 
     groups = data; 
    }); 

在Firebug中,我可以看到的頁面(視圖)被加載一次,但在上面的局部視圖腳本仍稱兩次。爲什麼?

回答

1

這看起來像它會在頁面加載時加載。當對話框彈出時,您是否還通過AJAX重新加載了部分內容?如果是這樣,那麼它可能會再次運行。

編輯:根據您的更新,我懷疑腳本標記位於DIV內部,並且在調用對話框小部件時克隆了DIV。將腳本移到對話框正在使用的DIV之外,應該可以解決您的問題。

+0

那麼當頁面加載的Index.aspx通過

<% Html.RenderPartial("test");%>.
局部視圖test.ascx負荷然後我有一個按鈕,打開對話框,只是裝載的Index.aspx使的getJSON開始叫了兩聲。 – 2009-07-08 21:47:48