我想将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吗?
答案 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的更多信息。