c#字符串数组到JS数组

时间:2017-03-15 13:20:38

标签: javascript c#

我想在JS插件中使用带有razor语法的C#字符串数组。

C#代码: (在cshtml中)

@{
    string[] extentions = new string[] { "jpg", "png", "gif", "jpeg", "pdf" };
}

JS代码:

  $('#file').filer({
        limit: 2,
        maxSize: 4000,
        extensions: ["jpg", "png", "gif", "jpeg", "pdf"],
        ...
  })

使用C#string []的JS代码:

  $('#file').filer({
        limit: 2,
        maxSize: 4000,
        extensions: '@extentions',
        ...
  })

在这种情况下,我得到System.String[],如果我使用JsonConvert.SerializeObject(extentions),我会得到这样的内容:

["jpg","png","gif","jpeg","pdf"]

以我想要的格式将c#字符串数组转换为Js数组的最佳方法是什么?

2 个答案:

答案 0 :(得分:6)

使用

@Html.Raw(JsonConvert.SerializeObject(extentions))

Html.Raw确保参数不会被html编码,因此您不会再获得"而不是"

答案 1 :(得分:0)

@{
    <text>[</text>
    foreach (string extension in extensions)
    {
        <text>"@extension", </text>
    }
    <text>]</text>
}

上面的代码将产生输出:

["jpg", "png", "gif", "jpeg", "pdf", ]

这是通过使用<text></text>标签完成的,该标签允许您在要在视图中显示的标签之间插入标记。

在开始时,插入[字符。然后,它遍历每个扩展并输出"extension",。循环完成后,它会插入]字符以结束有效的JavaScript数组。