将int数组从控制器传递到视图中的脚本标签
本文关键字:视图 脚本 标签 数组 int 控制器 | 更新日期: 2023-09-27 18:17:54
我需要将我的int数组传递给脚本标记,然后将值放入for循环中以在视图上使用它们这是我的控制器动作:
public ActionResult Graph2()
{
int[] PostIDArray = { 1, 2, 3, 4, 5, 6, 7, 8 };
int[] CommentNumberArray = { 1, 2, 3, 4, 5, 6, 7, 8 };
ViewBag.PostIDArray = PostIDArray;
ViewBag.CommentNumberArray = CommentNumberArray;
return View();
}
下面是我视图中的脚本标签:
<script>
var freqData = [];
var PostIDArray = @Html.Raw(Json.Encode(ViewBag.PostIDrray))
var CommentNumberArray = @Html.Raw(Json.Encode(ViewBag.CommentNumberArray));
for (var i = 0; i<8 ; i++) {
freqData.push({ PostID: PostIDArray[i], Comment: CommentNumberArray[i] });
}
</script>
我无法从控制器获取值到视图。ViewBag有问题。
试试这样:
<script type='text/javascript'>
// number array
var a = [ @(string.Join(", ", (int[])ViewBag.PostIDArray )) ];
console.log(a); // [1, 2, 3...]
var b = [ @(string.Join(", ", (int[])ViewBag.CommentNumberArray )) ];
console.log(b); // [1, 2, 3...]
</script>
这个怎么样:
<input type="hidden" value="@ViewBag.PostIDArray" id="PostIDArray" />
<input type="hidden" value="@ViewBag.CommentNumberArray" id="CommentNumberArray" />
和脚本:
<script>
var freqData = [];
var postIDArray = $('#PostIDArray').val().splt(',');
var commentNumberArray = $('#CommentNumberArray').val().split(',');
for (var i = 0; i<8 ; i++) {
freqData.push({ PostID: postIDArray[i], Comment: commentNumberArray[i] });
}
</script>
var array = @Html.Raw(Json.Encode(@ViewBag.Array));
for(var i = 0; i < array.length; i++)
{
freqData[i] = array[i];
}