如何使用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#代码中返回一个字符串吗?
您需要将数组序列化为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进行解析。