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

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

本文关键字:模型 转义 HTML 标记 javascript 视图 转换      更新时间:2023-09-26

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

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

模型包含许多不同类型的属性。问题是其中一些属性包含特殊字符,例如"<,>"。

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

我将感谢你的帮助。

将序列化的Model分配给js变量。

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

当模型被序列化为Json时,它包含&quot而不是"character。所以用"替换它,解析它并分配给js变量。

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