2009-08-21 7 views
0

私はAsp.net MVCを使用しています。コントローラーでは、配列リストを生成する関数があり、リストに変換した後、ビューページに戻しています。ビューページでは、次のコードリスト:javascriptのコントローラから渡された配列のリストの要素にアクセスするには?

  var j; 
      for(j=0;j<'<%=items.Count%>';j++) 
      { 
        alert('<%=items['+j+'].GetValue(0).ToString()%>'); 
        ..........           
      } 

  <% List<string[]> items = (List<string[]>)ViewData["Items"]; %> 

今、私は各アレイはjavascript.Iで/ foreachのfor文を使ってリストに属するの一つ一つには、次のコードをしようとしている要素にアクセスしたいです

しかし、「文字リテラルに文字が多すぎます」というエラーが表示されます。次のコードを使用するとうまくいきます。

    alert('<%=items[0].GetValue(0).ToString()%>'); 

しかし、私はそれを使用する場合は、この操作を行うにはそこにどのような方法をdynamically.Is?事前にme.Thanksを助けてください。 Arka

答えて

0

このシナリオでは、サーバー側でのみリストの要素を処理できます。

protected string SerializeToJson(List<string[]> list) { 
     if (list != null && list.Count > 0) { 
      var stream = new MemoryStream(); 
      var jsSerializer = new DataContractJsonSerializer(list.GetType()); 
      jsSerializer.WriteObject(stream, list); 

      return Encoding.UTF8.GetString(stream.ToArray()); 
     } 
     return string.Empty; 
    } 

使用例(C#JSONのシリアライズ関数へのインライン呼び出しではJavaScript):オブジェクトをシリアル化するために

例C#の機能:あなたはjavascript配列にサーバー側のリストオブジェクトをシリアル化する必要が

2

// the following call will return JSON array [["a","b"]] 
var arrayFromServer = <%= SerializeToJson(new List<string[]> { new [] {"a", "b"}};) %>; 

これはあなたが求めていたものですか?

+0

ありがとうございます。これが私が欲しかったものです。私は問題を解決しました。再度お礼を言います。 –

関連する問題