如何将带双引号的转义c#字符串转换为带双引号的转义javascript字符串
当我试图在javascript中使用带转义符号的字符串时,我有一个问题 在视图的顶部,我以如下方式初始化变量:如何将带双引号的转义c#字符串转换为带双引号的转义javascript字符串,javascript,c#,asp.net-mvc,c#-4.0,razor,Javascript,C#,Asp.net Mvc,C# 4.0,Razor,当我试图在javascript中使用带转义符号的字符串时,我有一个问题 在视图的顶部,我以如下方式初始化变量: @{ var lol = "hello \"mister sir\" I am quotes"; } 在javascript中,我尝试了不同的变体。出于测试目的,我编写了小函数: $selector = $('#some-button'); function test(str) { $selector.html(str); alert(
@{ var lol = "hello \"mister sir\" I am quotes"; }
在javascript中,我尝试了不同的变体。出于测试目的,我编写了小函数:
$selector = $('#some-button');
function test(str) {
$selector.html(str);
alert(str);
}
以下是我的尝试:
test("hello \"mister sir\" I am quotes");
hello&;引用;先生及;引用;我是alert中的引号
,我是html内容中的引号
test("@HttpUtility.HtmlAttributeEncode(lol)");
test("@HttpUtility.HtmlEncode(lol)");
你好“先生先生”我是引号
test("@Ajax.JavaScriptStringEncode(lol)");
test("@lol");
test("@HttpUtility.JavaScriptStringEncode(lol)");
test("@Html.Raw(lol)");
您能帮我介绍一些可以作为javascript变体(1)使用的方法吗?通常,最好使用您最喜欢的JSON序列化程序对要注入javascript的任何值进行编码。这将自动在字符串周围添加双引号,并适当转义字符串中的任何内容:
test(@Html.Raw(JsonConvert.Serialize(lol)));
javascript对html一无所知,尽管它通常都嵌入在html中。您必须为字符串生成有效的javascript表示,最简单的方法是将其编码为
json
。对于字符串文本,您将转义双引号,但是字符串lol
中没有反斜杠,因此lol
中的任何字符都不会转义。一个包含转义字符的文本看起来像这样的“你好\\\\\”先生\\\\\\“我是引号”“
是的,这是一个好办法。这个解决方案并不漂亮,但至少是可行的。谢谢