c# - 如何将变量传递给页面方法成功回调函数

标签 c# asp.net ajax pagemethods

我正在使用 asp.net PageMethods。所以这是我从 javascript 调用该方法的方式

function hello()
{
    var a =10;
    PageMethods.SaveData(JSON.stringify(basicInfo), SaveSuccessCallback, SaveFailedCallback);
}

这是我的成功回调条件

    function SaveSuccessCallback(response) {
    //handle success code here
    ShowEdit();
}

现在我想根据 hello 函数中的变量 a 处理 ShowEdit() 。 问题是我不知道是否可以将 ahello 传递到 SaveSuccessCallback注意:我无法使a全局化。

最佳答案

您可以使用 closure :

var a = 10;
PageMethods.SaveData(
    JSON.stringify(basicInfo),
    function(response) { 
        SaveSuccessCallback(response);
        ShowEdit(a);
    }, SaveFailedCallback);

function SaveSuccessCallback(response) {
   //handle success code here
}

您可能更愿意通过用另一种方法包装闭包来使其更简洁:

PageMethods.SaveData(
    JSON.stringify(basicInfo), SaveSuccessCallback(10), SaveFailedCallback);

function SaveSuccessCallback(a) {
    return function(response) {
        //handle success code here
        ShowEdit(a);
    };
}

关于c# - 如何将变量传递给页面方法成功回调函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18016737/

相关文章:

asp.net - 将 List<T> 作为查询字符串传递

asp.net - 正确使用标签前缀和标签名称?

c# - 删除子目录时IIS重新启动MVC3应用程序

c# - 循环中的随机数

c# - 这个 C# Dictionary<,> 优化有什么意义?

c# - 使用 <li> onclick 调用 C# 代码隐藏方法

javascript - 使用 JSON 文件和 Javascript

Jquery 和 HTML FormData 返回 "Uncaught TypeError: Illegal invocation"

c# - 创建文件并在那里写入 xml (C#)

c# - 无法从 Resources.resx 获取新添加的文件