我对剃须刀非常友好。
一个剃刀页面运行此JQuery指令:
var myVar = "@Html.Raw(ViemModel.Name)";
它运行良好,直到我通过一个名称包含一些双引号的视图模型为止: 名称= blabla“ blo” bla
然后,在运行时,编译器将在脚本文档节点(=调试MVC应用程序时为顶部节点)内分成我的razor文件类的相应文件。 在这个阶段,我可以看到 @ Html.Raw(ViemModel.Name)已转换为blabla“ blou” bla。 因此,文件中的行显示为:
var myVar = "blabla"blou"bla";
因此引号不会引起异常。
我完全不知道此脚本文档节点如何工作以及如何执行我的指令,以免使其混乱。
如果使用,我可以使代码工作:
var myVar = "@data.NomEntite".replace(""", "\"").replace(""", "\"");
但这显然不是一个选择,因为如果该值包含重音符或简单的引号,则代码将无法正常工作。
答案 0 :(得分:1)
@ Html.Raw会按原样转储字符串,而不会转义html。
您可以尝试:
var myVar = "@Html.Raw(Ajax.JavaScriptStringEncode(ViewModel.Name)";