无法解析ASP.NET Ajax调用中xmlhttpresponse文本中的字符串列表

时间:2015-02-27 09:48:39

标签: asp.net xmlhttprequest

<script type="text/javascript">
   $(document).ready(function () {
       alert('hi');
       var form = document.getElementById('form1');
       var xhr = new XMLHttpRequest();
       xhr.open('GET', "Load.aspx", false);
       xhr.onreadystatechange = function () {
           if (xhr.readyState == 4 && xhr.status == 200 && xhr.responseText) {
               alert('url(' + xhr.responseText + ')');

           } else {
           }
       };

       xhr.send(null);
   });
</script>

在Load.aspx内部,以下代码将字符串列表作为响应发送。

protected void Page_Load(object sender, EventArgs e) {        
    Response.Clear();
    Response.Write( new List<string>() { "../Temp/UP_zone.jpg", "../Temp/DP_zone.jpg" });
    Response.End();
}

我无法解析传递的字符串列表。警报显示内容为system.generic.list。

1 个答案:

答案 0 :(得分:0)

你需要在response.write之前序列化列表。 这里我使用JavaScriptSerializer来序列化。

 List<string> lst = new List<string>() { "../Temp/UP_zone.jpg", "../Temp/DP_zone.jpg" };
            System.Web.Script.Serialization.JavaScriptSerializer serializer = new JavaScriptSerializer();
            string converted = serializer.Serialize(lst);
            Response.Clear();
            Response.Write(converted);
            Response.End();

这会将json返回为[“../ Temp / UP_zone.jpg”,“../ Temp / DP_zone.jpg”]