如何转换带有双引号的转义c#字符串到带有双引号的转义javascript字符串
本文关键字:转义 字符串 何转换 javascript 转换 | 更新日期: 2023-09-27 18:06:14
当我试图在javascript中使用它们时,我有一个使用转义符号的字符串的问题。
在视图的顶部,我这样初始化变量:
@{ var lol = "hello '"mister sir'" I am quotes"; }
在javascript中我尝试了不同的变体。为了测试的目的,我写了一个小函数:
$selector = $('#some-button');
function test(str) {
$selector.html(str);
alert(str);
}
有我的尝试:
javascript逃离。它在alert或html内容中都可以正常工作。
test("hello '"mister sir'" I am quotes");
HtmlAttributeEncode或HtmlEncode。它们并非在所有情况下都有效。在alert中显示
hello "mister sir" i am quotes
,在html内容中显示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)));