首页 > 解决方案 > 如何将值从 Javascript 传递到代码函数背后的代码?

问题描述

我无法将值从 Javascript 传递给后面的代码。结果值始终未定义。

我附上了代码:

    <input id="Button2" type="button" value="FunctionCall" onclick="CallingServerSideFunction()" />
<script type="text/javascript">

    function CallingServerSideFunction() {
        alert("start");
        var result =PageMethods.Add(1,2);
        alert(result);
    }

</script>

</form>

我的cs代码: public static int Add(int x, int y)

    {
        int k = x + y;
        return k;
    }

帮我解决这个问题!

标签: javascriptasp.net

解决方案


发生这种情况是因为PageMethods异步调用,因此在 Web 方法结果之前显示的警报分配在变量结果中。

我希望下面的代码会有所帮助。

Javascript:

<script type="text/javascript">
    function CallingServerSideFunction() {
        PageMethods.Add(1, 2, OnSuccess);
    }
    function OnSuccess(response, userContext, methodName) {
        alert(response);
    }
</script>

HTML:

<input id="Button2" type="button" value="FunctionCall" onclick="CallingServerSideFunction()" />

C#:

[System.Web.Services.WebMethod()]
[System.Web.Script.Services.ScriptMethod()]
public static int Add(int x, int y)
{
    int k = x + y;
    return k;
}

推荐阅读