ASP NET MVC阵列在控制器到客户端阵列

时间:2013-07-10 22:22:26

标签: c# javascript asp.net asp.net-mvc razor

我的问题是如何(如果可能的话)从string[] a;这样的数组传递给它 通过ViewBag查看,如何获取字符串的javascript数组。

我想使用这个,因为我从数据库中获取了一组数据,而我想要的 查看制作图表,为此我需要一个javascript数组。

3 个答案:

答案 0 :(得分:8)

使用string.Join或类似方法将数组“渲染”到Javascript对象很容易:

@{
    ViewBag.a = new int[] { 1, 2, 3 };
    ViewBag.b = new string[] { "a", "b", };
}

<script type='text/javascript'>
    // number array
    var a = [ @(string.Join(", ", (int[])ViewBag.a)) ];
    console.log(a);  // [1, 2, 3]

    // string array -- use Html.Raw
    var b = [@Html.Raw("'" + string.Join("', '", (string[])ViewBag.b) + "'")];
    console.log(b);
</script>

答案 1 :(得分:1)

也许:

@{
    ViewBag.foo = new string[] { "a", "b", "c" };
}

var newFoo = @Html.Raw(Json.Encode(@ViewBag.foo));

答案 2 :(得分:0)

控制器

  public ActionResult Index()
    {
        int[] myArray = new int[] { 1, 3, 5, 7, 9 };
        ViewBag.myArray = myArray;
        return View();
    }

查看

@{
    ViewBag.Title = "Index";
    var myArray = (int[])ViewBag.myArray;
    var myjsstring = "";
    for(int i =0;i<myArray.Length;i++)
    {
        myjsstring += "mycars[" + i.ToString() + "] = " + myArray[i] + ";";
     }
}

    <script type="text/javascript">
        var mycars = new Array();
        @myjsstring


    </script>