处理从c#生成的html中的嵌套引号

时间:2010-02-08 17:34:13

标签: c# html formatting quotes

我正在使用第三方库来显示工具提示,如下所示:

string tooltip = "test";
output.Write("onmouseover='Tip(\"" + test + "\");'");  // work fine :)

我遇到以下情况的问题,我需要格式化引号:

string tooltip = "<span style='color:red;'>test</span>";
output.Write("onmouseover='Tip(\"" + test + "\");'");  // no working :(

如何在工具提示中转义html所需的引号,这样就不会破坏函数调用?

2 个答案:

答案 0 :(得分:2)

"的任何实例替换为&quot;,如下所示:

test.Replace( "\"", "&quot;" )

答案 1 :(得分:2)

这是Microsoft Anti-Xss Library

的完美用法

有了它,你可以调用JavaScriptEncode函数,它将构建一个这样的字符串:

Microsoft.Security.Application.AntiXss.JavaScriptEncode("ab'c\"d")
// 'ab\x27c\x22d'

请注意它包含引号

你会接受,HTML编码,然后将它直接放到你的括号中。

这样的事情:

string tooltip = "<span style='color:red;'>test</span>";
output.Write("onmouseover=\"Tip(" + AntiXss.JavaScriptEncode(test) + ");\"");  // working :)