用双引号包装ASP.NET控件

时间:2010-06-23 15:25:51

标签: c# javascript asp.net html-encode

我正在通过博客文章在Repeater中工作,我在底部显示了一个ShareThis JavaScript。该帖子的标题和URL正在发送给JS。在一个测试用例中,帖子的标题有一个引号,例如

  

Mark的测试帖

由于我需要在发送到ShareThis时保留该单引号,我需要将该JavaScript字符串包装在双引号中,但是字符串是通过Literal绑定的,我不能用双引号将文字包装起来:

这是我想要的,但不工作:

SHARETHIS.addEntry({ title: "<asp:Literal ID="ltlTitle" runat="server" />", etc..

我只能用单引号包装文字:

SHARETHIS.addEntry({ title: '<asp:Literal ID="ltlTitle" runat="server" />', etc..

但这会导致糟糕的前端代码:

SHARETHIS.addEntry({ title: 'Mark's test post', etc..

如何正确编码或以双引号将控件包装?我知道HttpUtility.HtmlEncodeServer.HtmlEncode,但我不知道这些会对我有什么帮助。

2 个答案:

答案 0 :(得分:1)

您需要在服务器端“javascript-encode”您的字符串。 你可能正在寻找这样的东西。

How do I escape a string inside JavaScript code inside an onClick handler?

答案 1 :(得分:0)

事实证明,我实际上可以在ASP.NET控件本身中使用单引号,这是我从未知道的。我以前认为这是一个解析器错误,但我的页面正确加载

title: "<asp:Literal ID='ltlTitle' runat='server' />"

结果就是我想要的:

title: "Mark's test post"