0

我想将序列化集合从 C# 后面的代码返回到 javascript 方法,然后这个 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 等。这在这里不正常。

4

3 回答 3

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>
于 2013-06-27T07:58:50.807 回答
1

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

public string Alerts()

将返回

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

当你去

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

你在说

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

所以跳过单引号,你应该没问题。

于 2013-06-27T11:46:21.380 回答
-1

包括 jquery 并尝试这个

<script type="text/javascript">
            window.onload = function () {
                var arr = <%= this.Alerts() %>;
                var arrList = JSON.parse(arr);
                console.log(arrList);
            };
        </script>
于 2013-06-27T08:01:37.483 回答