javascript - 从 C# 检索多个值到 JavaScript

标签 javascript c# webmethod

所以我有一个带有 onclick 的 a 标签:

<a onclick="join(4);">Join</a>

现在,当单击 a 标记时,它会按以下顺序调用此代码:

JavaScript 函数:

function join(gymID) {
        PageMethods.getGymInformation(gymID);
    }

C# 方法:

[WebMethod]
public gymData getGymInformation(string gymID)
{
    gyms gym = new gyms();
    DataTable dt = gym.getNewGymInfo(System.Convert.ToInt32(gymID));
    DataRow dr = dt.Rows[0];

    return new gymData { name = dr["name"].ToString(), strength = dr["strength"].ToString(), speed = dr["speed"].ToString(), defence = dr["defence"].ToString()};
}

public DataTable getNewGymInfo(int gymID)
{
    // This returns a datatable with 1 row
    return gymTableApapter.getNewGymInfo(gymID);
}

[Serializable]
public sealed class gymData
{
    public string name { get; set; }
    public string strength { get; set; }
    public string speed { get; set; }
    public string defence { get; set; }
}

如您所见,JavaScript join 函数调用 C# 方法,然后检索包含 1 行的 DataTable,然后使用自定义数据类型使用要返回的数据填充字符串。

现在我想弄清楚如何获取从 C# 方法返回的信息以在 JavaScript join 函数中提取?

他们有办法做到这一点吗?

最佳答案

在 JavaScript 代码中添加成功/错误回调。它可能看起来像这样:

PageMethods.getGymInformation(gymID, onSuccess, onError);

function onSuccess (result) {
    // result contains the returned value of the method
}

function onError (result) {
    // result contains information about the error
}

然后在 onSuccess 函数中,您将在 result 变量中获得服务器端方法(gymData 类型)的返回值。那时,您可以在客户端代码中使用它执行任何您需要执行的操作。

如果这些函数没有任何适用的重用,您甚至可以直接添加它们:

PageMethods.getGymInformation(gymID,
    function (result) {
        // success
    }, function (result) {
        // error
    });

关于javascript - 从 C# 检索多个值到 JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32057812/

相关文章:

c# - 将 Stream 转换为 String 并返回

jQuery 调用 asp.net Web 方法不起作用

javascript - 如何使用时区将以毫秒为单位的时间转换为不同的本地时间

javascript - 修复尝试将回调示例重写为 Promise 时出现的错误

php - 使用 js .innerHTML 更新 PHP 变量

c# - 不接受 ItemEventArgs 或 ItemClickEventArgs 作为参数

javascript - 如何在 typescript 中正确导入非相对路径?

c# - NLog "final"规则的 Serilog 替代方案

c# - 是否有 WebMethod 的替代方案以绕过回发但访问 Session

javascript - 从 JavaScript 调用 ASP.NET Web 服务方法