将int数组从控制器传递到视图中的脚本标记

时间:2015-10-15 11:49:07

标签: c# model-view-controller controller

我需要将我的int数组传递给脚本标记,然后将值放在for循环中以在视图上使用它们 这是我的控制器动作:

relative

以下是我视图中的脚本标记:

 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();
    }

我无法从控制器获取视图的值。 ViewBag出了点问题。我尝试了ViewData并且也没有用。

3 个答案:

答案 0 :(得分:1)

尝试这样的事情:

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

答案 1 :(得分:0)

这个怎么样:

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

答案 2 :(得分:0)

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