繁体   English   中英

如何使用asp.net将值从C#发送到javascript

[英]How do I send my values from c# to javascript with asp.net

我有一个简单的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进行解析。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM