将集合序列化为JavaScript

时间:2013-06-27 07:52:40

标签: c# javascript asp.net

我想从C#后面的代码返回序列化集合到javascript metod,然后这个javascript方法迭代正常的所有元素。我做了这个,但元素像正常的字符串字符一样迭代。

public string Alerts()
        {
            JavaScriptSerializer serializer = new JavaScriptSerializer();
            IList<string> alerts = new List<string>();

            alerts.Add("1");
            alerts.Add("2");

            string[] arrays = new string[] { "1", "2", "3" };

            return serializer.Serialize(arrays);
        }

<script type="text/javascript">
        window.onload = function () {
            alerts('<%= this.Alerts() %>');
        };
    </script>

我希望在js中迭代时的返回值是第一个索引1秒2 thrit 3等等。这里不正常。

3 个答案:

答案 0 :(得分:1)

试试这个

<script type="text/javascript">
   window.onload = function () {
   var arr = <%= this.Alerts() %>;
   for (var i in arr)
       alert(arr[i]); // Iterate over each element in array returned from C# code
   };
</script>

答案 1 :(得分:1)

您正在编码序列化程序输出:

public string Alerts()

将返回

["1","2","3"]

当你去

alerts('<%= this.Alerts() %>');

你在说

alerts('["1","2","3"]');

所以跳过单引号就可以了。

答案 2 :(得分:-1)

包含jquery并尝试此

<script type="text/javascript">
            window.onload = function () {
                var arr = <%= this.Alerts() %>;
                var arrList = JSON.parse(arr);
                console.log(arrList);
            };
        </script>