javascript - 将列表传递给视图后如何转换 C# 列表?
问题描述
我已经使用 ViewBag 将列表列表从控制器传递到我的视图。该列表有 2 个项目,每个项目有 8 个子项目。我希望我的 console.log 显示一个数组数组,但它在谷歌浏览器中显示如下。-> System.Collections.Generic.List 1[System.Collections.Generic.List
1[System.String]]。
请帮助我,我不知道如何将其转换为数组数组。
感谢你的帮助。谢谢。
<script>
$(document).ready(function () {
serverItem = '@ViewBag.serverItems';
console.log(serverItem);
});
</script>
解决方案
当您在服务器端有一个对象并且您需要在 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>
推荐阅读
- javascript - async await 在嵌套时如何工作?
- google-apps-script - 获取所有数据范围
- json - 使用名为 self 的元素解码 JSON
- spring-boot - Spring 5 Security:'没有为 id null 映射的密码编码器'
- gitlab - GitLab CE 在哪里显示提交状态?
- python - TypeError:“int”对象在 np.random.seed 中不可调用
- python - Lustre 文件系统上有多个读取器的 SQLite“磁盘 I/O 错误”
- python - 如何计算 Python 中包括结尾新行在内的行数?
- python - Nornir:将 Python 函数传递给 Jinja2 模板
- loops - Haskell中的双重for循环