在引用C#变量时如何处理JavaScript中的双引号

在引用C#变量时如何处理JavaScript中的双引号,c#,javascript,asp.net,string,C#,Javascript,Asp.net,String,我需要调用一个JavaScript函数,该函数接受一个字符串变量,该变量可能包含双引号。下面是我如何将变量传递到JavaScript函数中的: onclick="copyDescription('<%# Eval("Description") %>');" 如果我从上面的描述中删除双引号,它将非常有效。我通过执行以下操作进一步测试了这一点,结果正如预期的那样: $(document).ready(function () { var str = 'VA

我需要调用一个JavaScript函数,该函数接受一个字符串变量,该变量可能包含双引号。下面是我如何将变量传递到JavaScript函数中的:

onclick="copyDescription('<%# Eval("Description") %>');"
如果我从上面的描述中删除双引号,它将非常有效。我通过执行以下操作进一步测试了这一点,结果正如预期的那样:

        $(document).ready(function () {
        var str = 'VALVE BALL 1" 2000 RP THRD NACE SS BALON LS-10561';
        copyDescription(str);
    });

我曾尝试通过JavaScript执行.replace(“”、“\”)和.replace(““”、”)操作,但两种操作都不起作用。我可以通过修改C代码来删除引号,该代码获取删除双引号的值,这是可行的。只是不能通过JavaScript。有什么想法吗?

问题在于
正在终止HTML属性并切断JS mid语句


在由双引号分隔的属性值中,双引号必须表示为

问题在于
正在终止HTML属性并切断JS mid语句


双引号必须在由双引号分隔的属性值中表示为

使用Eval调用输出JSON或纯文本。这将处理任何嵌入的Javascript元字符。我不知道在C#中如何实现,但在PHP中它只是:

 onclick="copyDescription(<?php echo json_encode(...) ?>);"
onclick=“copyDescription();"

使用Eval调用输出JSON或纯文本。这将处理任何嵌入的Javascript元字符。我不知道如何在C#中实现这一点,但在PHP中它只是:

 onclick="copyDescription(<?php echo json_encode(...) ?>);"
onclick=“copyDescription();"

在字符串上使用and call函数
JavaScriptEncode()

在字符串上使用and call函数
JavaScriptEncode()
我使用的解决方案是使用以下方法回答我的问题:

onclick="copyDescription('<%# Server.HtmlEncode(Eval("Description").ToString()) %>');"
onclick=“copyDescription(“”);"
Server.HtmlEncode按我所需的方式工作


感谢大家的帮助和回答!

我所采用的解决方案是使用以下方法来回答我的问题:

onclick="copyDescription('<%# Server.HtmlEncode(Eval("Description").ToString()) %>');"
onclick=“copyDescription(“”);"
Server.HtmlEncode按我所需的方式工作


谢谢大家的帮助和回答!

我已经找到了答案,但是我找不到任何文档来解释
JavaScriptEncode
的实际功能。但是,看起来它并不能解决这个问题,需要使用
HtmlAttributeEncode
(这可能会处理引号字符以获得我的答案中描述的结果)。@Quentin对于以下字符串:
“这是一个\“测试\”
运行
JavaScriptEncode
将产生:
”“这是一个\x22test\x22”“
如果您想了解它的工作原理,请打开in reflector。啊,那也可以。我已经找过了,但是我找不到任何文档来解释
JavaScriptEncode
实际上是做什么的。然而,看起来它并不能解决这个问题,需要
HtmlAttributeEncode
(这可能会处理引号字符以获得我的答案中描述的结果)。@Quentin对于以下字符串:
“这是一个\“测试\”
运行
JavaScriptEncode
将产生:
“'这是一个\x22test\x22'”
如果你想了解反射器的工作原理,请打开反射器。啊,那也行。虽然我感谢你的努力,但这真的没有帮助。尽管我感谢你的努力,但这真的没有帮助。在说明中尝试
如何在说明中尝试