2016-05-13 65 views
0

我想将使用JsonConvert.SerializeObject的剃刀中的C#模型转换为javascript模型。将c#视图模型转换为javascript模型时转义HTML标记

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

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

不幸的是这会导致JavaScript语法错误: “语法错误:意外的令牌<” 我试图找到一种方法来检测包含特殊字符的属性和编码。 我使用Html.Raw来防止编码,因为我不想在将模型转换为JSON字符串时生成双引号。

我会感谢您的帮助。

+1

你可以试试这个:var data ='@ JsonConvert.SerializeObject(Model)'; var jsObj = JSON.parse(data.replace(/ "/g,''')); –

回答

1

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

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

当模型序列化到JSON,它包含& QUOT而不是“字符。因此,代之以”,分析它并分配给JS变量。

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

完美!谢谢! – Grentley