将C#字符串转换为JavaScript字符串

Sep*_*ani 4 javascript c# asp.net razor

有没有人知道在Asp.net中将C#字符串转换为JavaScript字符串的方法.我的代码看起来像这样:

<script>
  @{string thing = "Cats";}
  var thing = String(@thing);


  </script> 



</div>
<body onload="eventAlert(thing)"></body>
Run Code Online (Sandbox Code Playgroud)

Mar*_*own 15

您需要JavaScript在编写之前对字符串进行编码,否则您的字符串可能包含导致JavaScript字符串常量过早终止的字符.您可以使用System.Web命名空间中的HttpUtility.JavaScriptStringEncode执行此操作.一旦你完成了这个,你需要从HTML编码停止剃须刀可以用HtmlHelper.Raw完成的结果,如下所示:

@{string thing = "Cats Special Chars \"!'£$%^&*()@;:";}
var thing = "@Html.Raw(HttpUtility.JavaScriptStringEncode(thing))";
Run Code Online (Sandbox Code Playgroud)

  • 所以这非常整洁。根据您的用例,注入 `"@myString"` 可能更实用,但是您可以使用 `@HttpUtility.JavaScriptStringEncode(value: "hi", addDoubleQuotes: true)` 并让该方法输出带或不带字符串的字符串添加了双引号。 (2认同)