将变量发送到Javascript代码中的c#

Sending variable to a C# inside Javascript code

本文关键字:代码 Javascript 变量      更新时间:2023-09-26

Javascript代码:

function jsfunction ()
{
var sayi = 9999;
alert('<%= cfunction("'+sayi+'")%>');
} 
c#代码:

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

正常情况下,应该有从javascript代码发送到c#代码的9999值,但是,该值返回为'+sayi+'。同时,这给了我9999警报。我错了吗?

当JavaScript运行时,c#代码已经被执行了。了解您的页面生命周期。

如果您想调用服务器端函数来获取数据,您需要了解Ajax。

c#(服务器端)可以为客户端生成标记,如果没有某种Ajax类型的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);
        }
    });
}

您可以使用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-reflection/