结果显示System.String []

时间:2011-02-22 11:13:31

标签: c# jquery asp.net arrays

在我的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); 
          };

如何显示字符串数组的结果?

3 个答案:

答案 0 :(得分:7)

Response.Write(s)更改为:

JavaScriptSerializer objSerializer = new JavaScriptSerializer();
Response.Write(objSerializer.Serialize(s));

参考: JavaScriptSerializer

答案 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);
    });
});