有没有人知道在Asp.net中将C#字符串转换为JavaScript字符串的方法。我的代码如下所示:
<script>
@{string thing = "Cats";}
var thing = String(@thing);
</script>
</div>
<body onload="eventAlert(thing)"></body>
答案 0 :(得分:15)
您需要JavaScript在编写之前对您的字符串进行编码,否则您的字符串可能包含导致JavaScript字符串常量过早终止的字符。您可以使用System.Web命名空间中的HttpUtility.JavaScriptStringEncode执行此操作。一旦你完成了这个,你需要停止使用HTML格式编码结果,可以使用HtmlHelper.Raw完成这样的结果:
@{string thing = "Cats Special Chars \"!'£$%^&*()@;:";}
var thing = "@Html.Raw(HttpUtility.JavaScriptStringEncode(thing))";
答案 1 :(得分:1)
尝试以下方法:
var thing = "@(thing)";
答案 2 :(得分:0)
有几种很好的方法可以做到这一点。但一个非常干净的方法是使用cookie。这很干净,因为您没有将javascript代码从服务器注入静态客户端代码。编写C#以创建JavaScript然后将其插入变量可能会出现计时问题,具体取决于代码运行的时间和.Net正在执行的操作。出于安全考虑,请仔细阅读字符串。