2011-03-16 65 views
0


我使用VS2010,MVC3。
我有以下jQuery腳本,點擊一個按鈕後,在控制器流中有一個ActionResult頁面的pdf版本到新窗口。
但是,這裏發生了什麼:
當頁面第一次呈現時,我得到警報:「hereb1」和actionUrl的正確url值。
第一次點擊按鈕時,我得到警告「在hereb2」和「undefined」作爲url的值,並打開一個新窗口,出現未定義資源錯誤。
第三次點擊按鈕時,我得到「hereb2」中的警報和正確的url值(與actionUrl的值相同),並打開一個新窗口並顯示預期結果。沒有錯誤。
爲什麼第一次點擊無法訪問actionUrl的正確值?點擊一個按鈕沒有得到綁定正確的第一次點擊,但正確綁定第二次點擊

<script type="text/javascript"> 
$(document).ready(function() { 
    alert("in hereb1"); 
    var actionUrl = '@MvcHtmlString.Create(Html.BuildUrlFromExpressionForAreas<MyController>(c => c.GeneratePdf(Request.Url.ToString())))'; 
    alert(actionUrl); 
    $("#btnPdf").click(function() { 
     var url = $(this).attr("href"); 
     $(this).attr("href", actionUrl); 
     alert("in hereb2"); 
     alert(url); 
     var win = window.open(url, "PdfVersion"); 
     win.focus(); 
     return false; 
    }); 
    }); 
</script> 

感謝

回答

0

如果你想在一個新的標籤/窗口中打開actionUrl下面的代碼可以幫助

$("#btnPdf").click(function() { 
    //var url = $(this).attr("href"); 
    $(this).attr("href", actionUrl); 
    alert("in hereb2"); 
    alert(actionUrl); 
    var win = window.open(actionUrl, "PdfVersion"); 
    win.focus(); 
    return false; 
}); 

你的代碼確實是獲取到的網址btnPdf並在新窗口/選項卡中打開url,並將btnPdfhref屬性設置爲actionUrl,如果您嘗試這樣做,請確保已使用提供服務的頁面的屬性href alredy集。

+0

這並沒有工作,但我還是謝謝你。然而,這篇文章的第一個答案奏效了。 – FZF 2011-03-17 16:50:22

0

開關

var url = $(this).attr("href"); 
$(this).attr("href", actionUrl); 

$(this).attr("href", actionUrl); 
var url = $(this).attr("href"); 
+0

非常感謝,解決了這個問題。 – FZF 2011-03-17 16:49:42

相關問題