MVC:在javascript中迭代一个Viewbag数组

时间:2011-04-29 09:50:04

标签: javascript asp.net-mvc arrays razor viewbag

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

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

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

4 个答案:

答案 0 :(得分:41)

您可以尝试以下方法:

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

答案 1 :(得分:0)

<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";

答案 2 :(得分:0)

PrivateRoute

您可以使用JsonConvert.SerializeObject 希望对您有所帮助。

答案 3 :(得分:-1)

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

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

希望这有帮助