2011-07-26 15 views
0

JavaScript代碼:發送變量爲C#Javascript代碼裏面

function jsfunction() 
{ 
var sayi = 9999; 
alert('<%= cfunction("'+sayi+'")%>'); 
} 

C#代碼:

public string cfunction(string gelen) 
{ 
return gelen; 
} 

通常情況下,是應該9999值,它是從JavaScript代碼發送到C#代碼,但,該值返回爲'+sayi+'。 此外,這讓我警覺到9999.我錯了什麼?

+2

你誤會幾件事情,但首先,你的代碼甚至不應該編譯。你正在javascript中聲明'sayi'變量,並在C#中使用它(在'<%=' and '%>'之間)。這是不可能的,那麼'sayi'聲明在哪裏以便** C#**代碼可以看到它? –

回答

0

C#(服務器端)可以爲客戶端生成標記,客戶端無法在沒有某種類型的web請求的情況下回撥到服務器端。

做你要找的內容,你可以創建一個C#webmethod

[WebMethod()] 
public static string cfunction(string gelen) 
{ 
    return gelen; 
} 

和消費與客戶端jQuery.ajax()方法將WebMethod如果不這樣做(你需要jQuery庫腳本它已經)

function jsfunction() { 
    var sayi = 9999; 
    $.ajax({ 
     type: "POST", 
     url: "YOUR-ASPX-PAGE.aspx/cfunction", 
     data: "{gelen:'" + sayi + "'}", 
     contentType: "application/json; charset=utf-8", 
     dataType: "json", 
     success: function(msg) { 
      alert(msg.d); 
     } 
    }); 
} 
4

當JavaScript運行時,C#代碼已經被執行。瞭解你的頁面生命週期。

如果您想調用serverside函數來獲取數據,您需要了解Ajax。