在MVC.Net中无法正确转义的字符

时间:2019-01-04 14:08:22

标签: asp.net-mvc razor

我对剃须刀非常友好。

一个剃刀页面运行此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(""", "\"");

但这显然不是一个选择,因为如果该值包含重音符或简单的引号,则代码将无法正常工作。

1 个答案:

答案 0 :(得分:1)

@ Html.Raw会按原样转储字符串,而不会转义html。

您可以尝试:

var myVar = "@Html.Raw(Ajax.JavaScriptStringEncode(ViewModel.Name)";