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

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


该模型包含许多不同类型的属性。
问题是这些属性中的某些包含特殊字符,例如“ ”。

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

感谢您的帮助。

最佳答案

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

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


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

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

关于javascript - 将C# View 模型转换为javascript模型时转义HTML标记,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37204436/

10-12 07:27