如何将带双引号的转义 c# 字符串转换为带双引号的转义 javascript 字符串
how to convert escaped c# string with double quotes to escaped javascript string with double quotes
当我尝试在 javascript.
中使用带有转义符号的字符串时,我遇到了一个问题
在视图顶部,我以这种方式初始化变量:
@{ var lol = "hello \"mister sir\" I am quotes"; }
在 javascript 我尝试了不同的变体。为了测试目的,我写了一个小函数:
$selector = $('#some-button');
function test(str) {
$selector.html(str);
alert(str);
}
有我的尝试:
javascript 转义。它在警报或 html 内容中都可以正常工作。
test("hello \"mister sir\" I am quotes");
HtmlAttributeEncode 或 HtmlEncode。它们并非在所有情况下都有效。它在 alert 中显示 hello "mister sir" i am quotes
,在 html content
中显示 hello "mister sir" i am quotes
test("@HttpUtility.HtmlAttributeEncode(lol)");
test("@HttpUtility.HtmlEncode(lol)");
默认 c# 或 JavaScriptStringEncode。它们在警报中不起作用。它在警报中显示 hello "mister sir" i am quotes
。
test("@Ajax.JavaScriptStringEncode(lol)");
test("@lol");
test("@HttpUtility.JavaScriptStringEncode(lol)");
Html.Raw()。根本不起作用。它用未转义的双引号打破标记。
test("@Html.Raw(lol)");
你能帮我想出一些可以作为 javascript 变体 (1) 的方法吗?
通常最好使用您最喜欢的 JSON 序列化器来编码您想要注入 javascript 的任何值。这将自动在字符串周围添加双引号,并适当地转义字符串中的任何内容:
test(@Html.Raw(JsonConvert.Serialize(lol)));
当我尝试在 javascript.
中使用带有转义符号的字符串时,我遇到了一个问题在视图顶部,我以这种方式初始化变量:
@{ var lol = "hello \"mister sir\" I am quotes"; }
在 javascript 我尝试了不同的变体。为了测试目的,我写了一个小函数:
$selector = $('#some-button');
function test(str) {
$selector.html(str);
alert(str);
}
有我的尝试:
javascript 转义。它在警报或 html 内容中都可以正常工作。
test("hello \"mister sir\" I am quotes");
HtmlAttributeEncode 或 HtmlEncode。它们并非在所有情况下都有效。它在 alert 中显示
中显示hello "mister sir" i am quotes
,在 html contenthello "mister sir" i am quotes
test("@HttpUtility.HtmlAttributeEncode(lol)"); test("@HttpUtility.HtmlEncode(lol)");
默认 c# 或 JavaScriptStringEncode。它们在警报中不起作用。它在警报中显示
hello "mister sir" i am quotes
。test("@Ajax.JavaScriptStringEncode(lol)"); test("@lol"); test("@HttpUtility.JavaScriptStringEncode(lol)");
Html.Raw()。根本不起作用。它用未转义的双引号打破标记。
test("@Html.Raw(lol)");
你能帮我想出一些可以作为 javascript 变体 (1) 的方法吗?
通常最好使用您最喜欢的 JSON 序列化器来编码您想要注入 javascript 的任何值。这将自动在字符串周围添加双引号,并适当地转义字符串中的任何内容:
test(@Html.Raw(JsonConvert.Serialize(lol)));