c# - ASP.NET CORE 的等效 MVC 代码是什么?
问题描述
在我的 MVC C# 项目(不是核心)中,我成功地使用了这个:
索引.cshtml:
<script>
@{
var ListVar = Model.TimeToolDataList;
//TimeToolDataList (*it's an object list, ex: NAME = string, VALUE = int)
var SerializedList = new JavaScriptSerializer().Serialize(ListVar);
}//razer code in the script tag ^ by the @{} wrapper
var SerializedListRefined = JSON.parse('"@SerializedList"');
var FinalList = JSON.parse(htmlDecode(SerializedListRefined));</script>
伟大的!!!我可以 console.log 列表并“查看”它的内容,ASP.NET CORE 项目的此代码等效于什么?因为当我复制/粘贴 *连同所有其他东西时,它不会运行!!!
这不能使用:JavaScriptSerializer()
这也不能使用:JSON.parse(htmlDecode(SerializedListRefined));
更新,而不是JavaScriptSerializer()
,这有效:
var jsonStr = JsonSerializer.Serialize(ListVar);
^下@using System.Text.Json;
运行时,浏览器上的控制台给我一个“未捕获的 ReferenceError:htmlDecode 未定义”错误
解决方案
尝试类似下一个的方法来反序列化您必须使用的对象正确性,@HtmlRaw
假设ListVar
是您的Model
/ Object
(来自 c# 控制器的对象)
你可以做下一个:
var jsoninJS = @Html.Raw(Json.Serialize(Listvar));
这为您提供了可以在 javascriptvar jsoninJS
中打印的对象。Console.log(jsoninJS)
如果你包括
@using System.Web
你也可以用 C# 解码
使用@HttpUtility.HtmlDecode(string)
,但您应该在打印数据时解码/编码,而不是在其他任何地方。
推荐阅读
- python-3.x - 将环境 conda 中的 shell 命令与 python 脚本混合
- ios - 如何在 ios 中使用带有域的 pjsip 添加对 IPv6 的支持?
- python - Python 记录器转储自“
" 到新文件 - javascript - 如果错误,如何检查无线电组中的第二个选项?
- mongodb - Mongodb主副本正在生成大量日志
- mysql - TypeORM 与 MySQL - 用大长文本保存对象失败
- arrays - 当我尝试在菜单驱动的数组操作程序中调用插入或删除函数时,谁能告诉我为什么我的程序崩溃?
- html - 使用 flexbox 并排放置两个 p 标签
- android - Android MotionLayout + Recyclerview,recyclerview中的视图不可点击
- asynchronous - 您如何从反应式微服务系统中获取数据?