Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MVC:在javascript中迭代Viewbag数组_Javascript_Asp.net Mvc_Arrays_Razor_Viewbag - Fatal编程技术网

MVC:在javascript中迭代Viewbag数组

MVC:在javascript中迭代Viewbag数组,javascript,asp.net-mvc,arrays,razor,viewbag,Javascript,Asp.net Mvc,Arrays,Razor,Viewbag,目标是将数据从ViewBag.Array获取到Javascript数组。数据是在控制器中计算的,因此我无法直接从数据库中获取数据。我需要数据来用jqplot绘制图表。代码: for(i = 0; i < @ViewBag.Array.Length; i++) { jScriptArray[i] = @ViewBag.Array[i]; } for(i=0;ijavascript通信。服务器已经向视图发送了一个视图模型,如果可以直接执行JSON序列化该模型,那么只执行额外的AJAX

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

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

问题是
@ViewBag.Array[i]
中的“'i'在当前上下文中不存在”,但
jscript数组[i]
中没有问题。非常感谢您的帮助。

您可以尝试以下方法:

var array = @Html.Raw(Json.Encode(@ViewBag.Array));
for(var i = 0; i < array.length; i++) {
    jScriptArray[i] = array[i];
}
var-array=@Html.Raw(Json.Encode(@ViewBag.array));
对于(var i=0;i
实现目标的最佳方法是创建一个JSON控制器,将数据返回到JSON数组中

您可以从javascript请求数据,然后对其进行处理

希望这有帮助

<script>
var jScriptArray=[];
@{
    for(i = 0; i < ViewBag.Array.Length; i++){
      <text>jScriptArray[@i] = "@ViewBag.Array[@i]";</text>
      i++;
    }
  }
</script>
您可以使用JsonConvert.SerializeObject
希望这能有所帮助。

不,这个。无需为此创建返回JSON的控制器。很抱歉,无法完成此操作,但使用JSON控制器比使用Viewbag进行javascript服务器端通信更好。对于
javascript->server
通信是的,这更好,我同意。但这里我们讨论的是
server->javascript
通信。服务器已经向视图发送了一个视图模型,如果可以直接执行JSON序列化该模型,那么只执行额外的AJAX请求将是不好的。谢谢你,救了我一天。二维数组怎么样?使用这种技术,结果是一维的。@JohnMeyer您找到了处理二维viewbag数组的方法了吗?我想我最终是将它传递到模型上的视图,而不是使用viewbag。在我的例子中,它是
Json.Serialize
而不是
Json.Encode
jScriptArray[0] = "ArrayValue0";
jScriptArray[1] = "ArrayValue1";
jScriptArray[2] = "ArrayValue2";
var array=@Html.Raw(JsonConvert.SerializeObject(ViewBag.Array));