首页 > 解决方案 > 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 未定义”错误

标签: c#asp.net-core

解决方案


尝试类似下一个的方法来反序列化您必须使用的对象正确性,@HtmlRaw假设ListVar是您的Model/ Object(来自 c# 控制器的对象)

你可以做下一个:

var jsoninJS = @Html.Raw(Json.Serialize(Listvar));

这为您提供了可以在 javascriptvar jsoninJS中打印的对象。Console.log(jsoninJS)

如果你包括 @using System.Web你也可以用 C# 解码

使用@HttpUtility.HtmlDecode(string) ,但您应该在打印数据时解码/编码,而不是在其他任何地方。


推荐阅读