我想在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数组的最佳方法是什么?
答案 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数组。