在我的GetBusiness.aspx页面上,我创建了一个测试列表
List<string> l = new List<string>();
l.Add("one");
l.Add("two");
l.Add("three");
l.Add("four");
l.Add("five");
// B.
string[] s = l.ToArray();
Response.Write(s);
在我的第二页上没有(默认的aspx页面)我有一些jQuery来加载这个数组并显示结果:
$.get('GetBusiness.aspx', function (returndata) {
// for each address in returndata
alert(returndata);
但结果是:System.String [] 如果我迭代,他迭代字符串“System.String []”
$.each(returndata, function (index, value) {
alert(index + ': ' + value);
};
如何显示字符串数组的结果?
答案 0 :(得分:7)
将Response.Write(s)
更改为:
JavaScriptSerializer objSerializer = new JavaScriptSerializer();
Response.Write(objSerializer.Serialize(s));
答案 1 :(得分:2)
在您的GetBusiness页面中,您正在输出数组的.ToString()
属性,即“System.String []”。您需要迭代列表并以一些可用的格式(如JSON)分别输出每个元素,然后进行适当的解析。
示例(未经测试):
string reponse = "";
response += "{ \"Output\":[";
for(int i = 0; i < s.Length; i++) {
response += s[i];
if (i < s.Length - 1) response += ", "
}
response += "] }";
Response.Write(response);
答案 2 :(得分:1)
List<string> l = new List<string>();
l.Add("one");
l.Add("two");
l.Add("three");
l.Add("four");
l.Add("five");
// B.
string[] s = l.ToArray();
Response.Write(string.Join(",", s));
的javascript:
$.get('GetBusiness.aspx', function(returndata) {
var arr = returndata.split(',');
$.each(arr, function(index, value) {
alert(index + ': ' + value);
});
});