javascript - 如何从 c#(Razor Syntax) 中的对象列表转到 javascript 中的数组或对象?
问题描述
使用 Newtonsoft.Json 的序列化成功创建了一个 json 文本:
@model IEnumerable<CardGameApp.RootObject>
@{
ViewData["Title"] = "Game";
Layout = "~/views/Shared/_Layout.cshtml";
List<CardGameApp.RootObject> deck1 = Model.Take(40).ToList();
List<CardGameApp.RootObject> deck2 = Model.Skip(40).ToList();
var json1 = Newtonsoft.Json.JsonConvert.SerializeObject(deck1);
var json2 = Newtonsoft.Json.JsonConvert.SerializeObject(deck2);
}
而第二个任务会引发如下错误:
Uncaught SyntaxError: Unexpected token o in JSON at position 1 at JSON.parse ()
var _deck1 = JSON.parse(@Html.Raw(json1));
var _deck2 = JSON.parse(@Html.Raw(json2));
如果我将 '' 放在括号内,如下所示:
var _deck1 = JSON.parse('@Html.Raw(json1)');
var _deck2 = JSON.parse('@Html.Raw(json2)');
它会引发如下错误:
Uncaught SyntaxError: missing ) after argument list.
任何提示都会有所帮助!
解决方案
由于 JSON 是有效的 JavaScript 代码,因此您在 JavaScript 中所要做的就是:
var _deck1 = @Html.Raw(json1);
var _deck2 = @Html.Raw(json2);
基本上,JSON 成为脚本标记中的 JavaScript 对象文字。
推荐阅读
- javascript - JS在循环内应用函数
- python - 为什么这个正则表达式不适用于 re.search?
- javascript - 当我尝试检索它时,类组件中的状态变量未定义
- python - 如何在 matplotlib 中生成矩形箱线图?
- ajax - ajax中数量变化时如何更改总价?
- javascript - 使用 NetworkD3 修改 Sankey 中的链接和节点颜色
- ios - 使用“true”执行布尔变量 - 仅延迟一次 - 然后正常
- c# - Asp.Net Core 3.1 Form POST 方法不起作用
- c# - ASP.NET Core Web API 不受支持的媒体类型
- python - 如何获取用于在 python 中的 google fit API 中过滤结果的日期的日期格式?