将 c# 视图模型转换为 javascript 模型时转义 HTML 标记

Escape HTML tags when converting c# view model to javascript model

我正在尝试使用 JsonConvert.SerializeObject 将 Razor 中的 C# 模型转换为 javascript 模型。

var brandsCollectionModel = '@(Html.Raw(JsonConvert.SerializeObject(Model)))';

该模型包含许多不同类型的属性。 问题在于其中一些属性包含特殊字符,例如“<、>”。

不幸的是,这会导致 javascript 语法错误: "SyntaxError: Unexpected token <" 我正在尝试找到一种方法来检测包含特殊字符的 属性 并对其进行编码。 我正在使用 Html.Raw 来防止编码,因为我不想转义将模型转换为 JSON 字符串时生成的双引号。

非常感谢您的帮助。

将序列化模型赋值给js变量。

var data = '@JsonConvert.SerializeObject(Model)';

当模型序列化为Json时,它包含"而不是"字符。因此将其替换为",解析并赋值给js变量。

var jsObj = JSON.parse(data.replace(/&quot;/g,'"'));