1

我正在尝试迭代一个字符串数组的内容,该数组由控制器放入 ViewBag 中,在 javascript 中。

在控制器中:

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

在视图中:

<script language="javascript" type="text/javascript">
    function ExecuteOnLoad() {

        var array = How do I get "a", "b" and "c" here?;
        for (var i = 0; i < array.length; i++) {
            doSomething(array[i]);
        }
    }

</script>

我搜索了很多答案,但似乎只为剃刀视图引擎找到了解决方案。网络表单呢?

4

1 回答 1

2

在你看来

<script language="javascript" type="text/javascript">
    function ExecuteOnLoad() {

        var array = <%= Html.Raw(ViewBag.Addresses)%>;
            for (var i = 0; i < array.length; i++) {
                document.write(array[i]);
            }
        }
</script>

然后从您的控制器中:

JavaScriptSerializer js = new JavaScriptSerializer();
//serializes array into json

ViewBag.Addresses = js.Serialize(new[] { "a", "b", "c" });

就我个人而言,我会考虑创建一个视图模型并将数组序列化为视图模型上的一个属性,然后在您的视图中执行此操作:

<script language="javascript" type="text/javascript">
    function ExecuteOnLoad() {

        var array = <%= Html.Raw(Model.Addresses)%>;
            for (var i = 0; i < array.length; i++) {
                document.write(array[i]);
            }
        }
</script>
于 2012-08-21T08:52:21.380 回答