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

シリアライザの出力をエンコードしています:

public string Alerts()

戻ります

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

あなたが行くとき

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

あなたが言っている

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

したがって、一重引用符をスキップすると問題ありません。

于 2013-06-27T11:46:21.380 に答える
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

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 に答える