簡體   English   中英

在Javascript代碼中將變量發送到C#

[英]Sending variable to a C# inside Javascript code

JavaScript代碼:

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

C#代碼:

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

通常,應該有9999值,該值是從javascript代碼發送到C#代碼的,但是此值返回為'+sayi+' 另外,這給我警報9999。我怎么了?

在運行JavaScript時,已經執行了C#代碼。 了解您的頁面生命周期。

如果要調用服務器端函數來獲取數據,則需要了解Ajax。

C#(服務器端)可以為客戶端生成標記,如果沒有某種Ajax類型的Web請求,客戶端就無法回調到服務器端。

要執行您想要的操作,可以創建一個C# 網絡方法

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

並使用客戶端jQuery.ajax()方法使用Web方法(如果還沒有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);
        }
    });
}

您可以使用scriptmethod屬性從JavaScript代碼中調用服務器端方法。 但是您必須了解其背后的機制,以便您可以相應地調試和修改。

http://www.chadscharf.com/index.php/2009/11/creating-a-page-method-scriptmethod-within-an-ascx-user-control-using-ajax-json-base-classes-and-反射/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM