有没有人知道在Asp.net中将C#字符串转换为JavaScript字符串的方法。我的代码如下:
<script>
@{string thing = "Cats";}
var thing = String(@thing);
</script>
</div>
<body onload="eventAlert(thing)"></body>
有没有人知道在Asp.net中将C#字符串转换为JavaScript字符串的方法。我的代码如下:
<script>
@{string thing = "Cats";}
var thing = String(@thing);
</script>
</div>
<body onload="eventAlert(thing)"></body>
在输出字符串之前,您需要对其进行JavaScript编码,否则您的字符串可能会包含导致JavaScript字符串常量过早终止的字符。您可以使用System.Web命名空间中的HttpUtility.JavaScriptStringEncode进行此操作。一旦完成,您需要阻止Razor对结果进行HTML编码,可以使用HtmlHelper.Raw来实现:
@{string thing = "Cats Special Chars \"!'£$%^&*()@;:";}
var thing = "@Html.Raw(HttpUtility.JavaScriptStringEncode(thing))";
"@myString"
可能更实际,但是您也可以使用@HttpUtility.JavaScriptStringEncode(value: "hi", addDoubleQuotes: true)
,让该方法输出一个带或不带双引号的字符串。 - The Muffin Man请尝试以下操作:
var thing = "@(thing)";
var thing = "@(thing)";
也很有用。 - Travis J有几种不错的方法可以实现此功能。但是一个非常干净的方法是使用cookie。这样很干净,因为您不会将来自服务器的JavaScript代码注入静态客户端代码中。编写C#以创建JavaScript,然后将其插入变量中可能存在时间问题,具体取决于您的代码何时运行以及.Net正在做什么。在读取字符串时要非常小心,以防安全问题。