首页 > 解决方案 > 将列表传递给视图后如何转换 C# 列表?

问题描述

我已经使用 ViewBag 将列表列表从控制器传递到我的视图。该列表有 2 个项目,每个项目有 8 个子项目。我希望我的 console.log 显示一个数组数组,但它在谷歌浏览器中显示如下。-> System.Collections.Generic.List 1[System.Collections.Generic.List1[System.String]]。

请帮助我,我不知道如何将其转换为数组数组。

感谢你的帮助。谢谢。

<script>

      $(document).ready(function () {

           serverItem = '@ViewBag.serverItems';

           console.log(serverItem);

           });

</script>

标签: javascriptc#asp.net-mvc

解决方案


当您在服务器端有一个对象并且您需要在 javascript 范围内使用它时,您必须通过渲染来传输它。您必须提供一种与两者都兼容的格式,在这种情况下,json是一个不错的选择。样品:

在 上razor,您定义了一个 json 格式的字符串对象。(记得添加Newtonsoft.Json命名空间)

@{ 
    var json = @Html.Raw(Json.Encode(ViewBag.serverItems)); 
}

在 javascript 中,您只需打印 json,它将是一个 javascript 对象。

<script>

      $(document).ready(function () {

           serverItem = @json;

           console.log(serverItem);

           });

</script>

推荐阅读