我需要能够在 JavaScript 中访问我的 C# 代码中保存的字符串。为了进行测试,我尝试在 JavaScript 中显示带有 C# 字符串的消息框(我使用此字符串文字和消息框作为示例场景):
alert(<%: "TEST" %>);
运行此代码时,不会显示任何消息框。另一方面,会显示一个消息框,其中包含以下代码:
alert(<%: 6 %>);
为什么我可以使用整数而不是字符串?有什么办法解决这个问题吗?
谢谢。
最佳答案
您需要在字符串两边加上引号;否则,浏览器会看到 alert(TEST);
,这是不正确的。为防止跨站脚本攻击,还需要对特殊字符进行适当的转义。来电 HttpUtility.JavaScriptStringEncode
让你做这两件事:
alert(<%= HttpUtility.JavaScriptStringEncode("TEST", true) %>);
注意:如果此 JavaScript 片段出现在 HTML 属性内,如 onclick
,您可能需要更改 <%=
至 <%:
这样双引号也是 HTML 编码的。
关于c# - Javascript/ASP.NET MVC 4 - 在 Javascript 中使用 C# 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17117152/