MVC: Iterating a Viewbag array in javascript
The goal is to get the data from the ViewBag.Array
to a Javascript array. The data is calculated in the controller so I cannot fetch it straight from the database. I need the data to draw a chart with jqplot. Code:
for(i = 0; i < @ViewBag.Array.Length; i++)
{
jScriptArray[i] = @ViewBag.Array[i];
}
The problem is "'i' does not exist in the current context" in the @ViewBag.Array[i]
but has no problems in the jScriptArray[i开发者_如何转开发]
. Any help is appreciated.
You may try the following:
var array = @Html.Raw(Json.Encode(@ViewBag.Array));
for(var i = 0; i < array.length; i++) {
jScriptArray[i] = array[i];
}
var array=@Html.Raw(JsonConvert.SerializeObject(ViewBag.Array));
you can make use of JsonConvert.SerializeObject Hope this Helps.
<script>
var jScriptArray=[];
@{
for(i = 0; i < ViewBag.Array.Length; i++){
<text>jScriptArray[@i] = "@ViewBag.Array[@i]";</text>
i++;
}
}
</script>
You will end up with something like this in html file:
jScriptArray[0] = "ArrayValue0";
jScriptArray[1] = "ArrayValue1";
jScriptArray[2] = "ArrayValue2";
The best way to achieve your goal is to create a JSON controller that returns the data into a JSON array.
From your javascript you can request the data and then process it.
Hope this helps
精彩评论