繁体   English   中英

.NET核心对象JSON序列化为Javascript格式

[英].NET Core Object JSON Serialization to Javascript format

我将C#对象序列化为普通的JSON字符串时遇到了一些问题。

我使用JsonConvert(Newtonsoft的一个)将模型格式化为JSON。 问题是JSON字符串get在某些Javascript中使用,但格式不好,因为引用被写为“&quote;” 代替 ”'”。 有想法该怎么解决这个吗 ?

//...
@{
    var dataJson = JsonConvert.SerializeObject(Model);
}
//...

<script>
    function ChangeGroup(type) {
        $.ajax({
            url: //...,
            data: @dataJson
        });
    }
</script>

我得到的是这个:

错误

我忘了设置一些格式化选项?

你可以这样做:

@{
  var dataJson = new HtmlString(JsonConvert.SerializeObject(Model));
}

默认情况下,ASP.Net Core在呈现@表达式之前将进行HTML编码,除非表达式求值为具有接口IHtmlContent(HtmlString具有)的类型。 另一种方式是写

@Html.Raw(dataJson)

在ASP.NET Core中有一个更短,更容易使用和记忆:

@Json.Serialize(Model);

分配给JavaScript值时,生成的JavaScript有效:

<script>
    var model = @Json.Serialize(model);
</script>

有了这个,您不必担心HTML转义字符。

我使用以下内容将我的模型中的数据导入JS对象。 以为我会发布可能会帮助将来某人...

var items = @Html.Raw(Newtonsoft.Json.JsonConvert.SerializeObject(Model.Items));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM