如何使用asp.net将我的值从c#发送到javascript

本文关键字:javascript asp 何使用 net 我的 | 更新日期: 2023-09-27 17:59:49

我有一个简单的c#函数,它返回如下数组:

protected int[] numArray()
{
    int [] hi = {1,2};
    return hi;
}

我试图将这些值输入到我的javascript中,所以我试图在asp.net中这样做:

var array = '<%=numArray()%>';
window.alert(array[0]);
window.alert(array[1]);

但是,它似乎没有返回数组,而是传递了一个字符串("System.Int32[]")。第一个警报打印一个"S",第二个警报打印"y"。我该怎么打印我的号码呢。我必须从我的c#代码中返回一个字符串吗?

如何使用asp.net将我的值从c#发送到javascript

您需要将数组序列化为JSON。一种方法是使用JavaScriptSerializer。。。

using System.Web.Script.Serialization;
// ...
protected string numArrayJson()
{
    int [] hi = {1,2};
    var serializer = new JavaScriptSerializer();
    var json = serializer.Serialize(hi);
    return json;
}

现在应该可以了。。。

var array = <%=numArrayJson()%>;

输出到页面的实际脚本应该是这样的。。。

var array = [1,2];      // a javascript array with 2 elements
window.alert(array[0]); // 1
window.alert(array[1]); // 2

您正在返回一个C#int数组,javascript无法读取该数组。您最好的选择是将其转换为JSON,然后将其发回并使用JavaScript进行解析。另一种选择是在返回数组(或绑定数组时)之前,简单地对数组执行.ToString(),然后用javascript进行解析。