将C#List <string>转换为Javascript

时间:2015-12-18 10:46:38

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

我想将List类型的Model属性转换为可在同一视图中使用的Javascript变量。 这是我的模型结构:

 public string Title { get; set; }
 public string Description { get; set; }
 public List<String> ImgLinks { get; set; }

我想要一个Javascript数组或我模型的ImgLinks属性的json。我试过了 -

var imageLinks = @(Html.Raw(Json.Encode(Model.ImgLinks)));

但我收到语法错误警告。有人可以帮我转换为javascript数组和json吗?

2 个答案:

答案 0 :(得分:4)

您可以遍历剃刀集合并将值存储在Javascript数组中。

<script type="text/javascript">

    var myArray = [];

    @foreach (var link in Model.ImgLinks)
    {
        @:myArray.push("@link");
    }

    alert(myArray);

</script>

答案 1 :(得分:1)

有一个更优雅的解决方案。您需要将列表序列化为JSON:

var imageLinks = @Json.Encode(Model.ImgLinks); // <- annoying syntax error

所以你做得对。现在要修复这个语法错误,我建议你使用简单的javascript设置函数:

function set(value) {
    return value;
}

var imageLinks = set(@Json.Encode(Model.ImgLinks));

您可以找到有关修复此语法错误here的更多信息。