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

问题描述 投票:3回答:3

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

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


  </script> 



</div>
<body onload="eventAlert(thing)"></body>
javascript c# asp.net razor
3个回答
14
投票

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

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

1
投票

请尝试以下方法:

var thing = "@(thing)";

0
投票

有几种很好的方法可以做到这一点。但一个非常干净的方法是使用cookie。这很干净,因为您没有将javascript代码从服务器注入静态客户端代码。编写C#以创建JavaScript然后将其插入变量可能会出现计时问题,具体取决于代码运行的时间和.Net正在执行的操作。出于安全考虑,请仔细阅读字符串。

© www.soinside.com 2019 - 2024. All rights reserved.