Razor MVC 使用模型数组填充 Javascript 数组

新手上路,请多包涵

我正在尝试使用模型中的数组加载 JavaScript 数组。在我看来,这应该是可能的。

以下两种方法均无效。

无法创建 JavaScript 循环并使用 JavaScript 变量递增模型数组

for(var j=0; j<255; j++)
{
    jsArray = (@(Model.data[j])));
}

无法创建 Razor 循环,JavaScript 超出范围

@foreach(var d in Model.data)
{
    jsArray = d;
}

我可以让它一起工作

var jsdata = @Html.Raw(Json.Encode(Model.data));

但我不知道为什么我必须使用 JSON。

另外,目前我将其限制为 255 个字节。将来它可能会遇到许多 MB。

原文由 Tom Martin 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 286
2 个回答

这是可能的,你只需要循环遍历剃须刀集合

<script type="text/javascript">

    var myArray = [];

    @foreach (var d in Model.data)
    {
        @:myArray.push("@d");
    }

    alert(myArray);

</script>

原文由 heymega 发布,翻译遵循 CC BY-SA 4.0 许可协议

我正在使用来自 C# 的 toasts(警报消息)列表 List<Alert> 并需要它作为局部视图中 Toastr 的 JavaScript 数组( .cshtml 文件)。下面的 JavaScript 代码对我有用:

 var toasts = @Html.Raw(Newtonsoft.Json.JsonConvert.SerializeObject(alerts));
toasts.forEach(function (entry) {
    var command = entry.AlertStyle;
    var message = entry.Message;
    if (command === "danger") { command = "error"; }
    toastr[command](message);
});

原文由 Soma Mbadiwe 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题