web-dev-qa-db-ja.com

MVC:javascriptでViewbag配列を反復する

目標は、ViewBag.ArrayからJavascript配列にデータを取得することです。データはコントローラーで計算されるため、データベースから直接フェッチすることはできません。 jqplotでグラフを描くためのデータが必要です。コード:

for(i = 0; i < @ViewBag.Array.Length; i++)
{
    jScriptArray[i] = @ViewBag.Array[i];
}

問題は、@ViewBag.Array[i]の「 'i'は現在のコンテキストに存在しません」ですが、jScriptArray[i]には問題はありません。どんな助けでも大歓迎です。

15
Esa

次のことを試すことができます。

var array = @Html.Raw(Json.Encode(@ViewBag.Array));
for(var i = 0; i < array.length; i++) {
    jScriptArray[i] = array[i];
}
42
Darin Dimitrov
<script>
var jScriptArray=[];
@{
    for(i = 0; i < ViewBag.Array.Length; i++){
      <text>jScriptArray[@i] = "@ViewBag.Array[@i]";</text>
      i++;
    }
  }
</script>

あなたはhtmlファイルでこのようなものになってしまうでしょう:

jScriptArray[0] = "ArrayValue0";
jScriptArray[1] = "ArrayValue1";
jScriptArray[2] = "ArrayValue2";
0
Dmitry Bosikov
var [email protected](JsonConvert.SerializeObject(ViewBag.Array));

JsonConvert.SerializeObjectを利用できますこれがお役に立てば幸いです。

0
LeArm