关于asp.net mvc:MVC:在JavaScript中迭代Viewbag数组

MVC: Iterating a Viewbag array in javascript

目标是将数据从ViewBag.Array获取到Javascript数组。数据是在控制器中计算的,因此我无法直接从数据库中获取数据。我需要数据来用jqplot绘制图表。代码:

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

问题是@ViewBag.Array[i]中的" i'在当前上下文中不存在",但在jScriptArray[i]中没有问题。任何帮助表示赞赏。


您可以尝试以下操作:

1
2
3
4
var array = @Html.Raw(Json.Encode(@ViewBag.Array));
for(var i = 0; i < array.length; i++) {
    jScriptArray[i] = array[i];
}


1
var array=@Html.Raw(JsonConvert.SerializeObject(ViewBag.Array));

您可以使用JsonConvert.SerializeObjectHope对此有所帮助。


1
2
3
4
5
6
7
var jScriptArray=[];
@{
    for(i = 0; i < ViewBag.Array.Length; i++){
      <text>jScriptArray[@i] ="@ViewBag.Array[@i]";</text>
      i++;
    }
  }

您最终会在html文件中得到以下内容:

1
2
3
jScriptArray[0] ="ArrayValue0";
jScriptArray[1] ="ArrayValue1";
jScriptArray[2] ="ArrayValue2";


实现目标的最佳方法是创建一个JSON控制器,将数据返回到JSON数组中。

通过javascript,您可以请求数据然后进行处理。

希望这会有所帮助