2017-10-20 13 views
0
<script type="text/javascript"> 
     window.onload = function() { 
      for (var i=0;i<@Model.listsinfo.Count;i++) 
      { 
       $('#work').append($('<div class="col-md-3" id="temp"><label for="text1">'+ '@Model.listsinfo[i].Label' +'</label></div><div class="col-md-3"> <input type="text" placeholder="Alerts" class="form-control" id="text1"> </div>')); 
      } 
     } 
    </script> 

上記のコードでは、私のコントローラからリストを渡してそれを反復しようとしています。しかし、@ Model.listsinfo [i] .Labelは機能していません。エラーは、現在のコンテキストに 'i'が存在しないことを示します。インデックス値@ Model.listsinfo [0] .Labelを付けてリストの値にアクセスできますが、反復は機能しません。どんな助けもありがとうございます。javascriptでリストを反復できない

+0

はModel.listsinfo'がサーバー上にあるあなたの '@' 'Model.listsinfo @ [i]を.Label'' – Niladri

+2

から単一引用符を削除しますそして、あなたのループ - それはかみそり – Flying

+0

で[OK]を、私の悪い、申し訳ありません:) – Niladri

答えて

2

あなたはHtml.RawJson.Encodeを使用して、JavaScriptの配列に割り当てることができ、そこから内容を反復処理:

<script type="text/javascript"> 
    window.onload = function() { 
      var array = @Html.Raw(Json.Encode(@Model.listsinfo)); 

      for (var i = 0; i < array.length; i++) 
      { 
       $('#work').append($('<div class="col-md-3" id="temp"><label for="text1">'+ array[i].Label +'</label></div><div class="col-md-3"> <input type="text" placeholder="Alerts" class="form-control" id="text1"> </div>')); 
      } 
    } 
</script> 

Model.listinfoは、サーバー側で処理され、反復はあなたので、クライアント側で発生する。なおviewmodel配列をJS配列に変換してから、appendメソッドに代入する必要があります。

同様の問題:

MVC: Iterating a Viewbag array in javascript

jQuery: How to traverse/Iterate over a list of object

+0

グレート偉大なおかげで..!それが今取り組んでいることを生成させるのHTMLを生成する..!:) – CRA

+0

あなたが最良のあなたの問題を解決するのではなく、「ありがとう」と言ってどんな答えを受け入れるように考えることができ、そうする義務はありません。 –

関連する問題