ToolTip编码问题

Roc*_*ngh 4 c# asp.net encoding .net-4.0

<asp:HyperLink ID="TestHyperLink" runat="server"></asp:HyperLink>
Run Code Online (Sandbox Code Playgroud)

我有上述超链接.我只是用下面的代码设置文本:

string textFromUser = "This is test's.";
string encodedText=HttpUtility.HtmlEncode(textFromUser);
TestHyperLink.Text = encodedText;
TestHyperLink.ToolTip = encodedText;
Run Code Online (Sandbox Code Playgroud)

问题是超链接的文本正确,但工具提示显示编码的字符. 在此输入图像描述

如何使工具提示以与文本相同的方式显示?

Joã*_*elo 8

您正在看到该问题,因为属性值被编码两次.

  1. '字符被编码成&#39;;
  2. &字符被编码成&amp;.

最后输出作为发送到浏览器title="This is test&amp;quot;s.".由于默认情况下属性值已经被编码,因此您可以安全地将Tooltip属性设置为原始文本,并仅编码Text属性的文本.

注意:在这种情况下,默认情况下会执行属性编码,但HtmlEncode在4.0之前的.NET版本中,不对'字符进行编码.请参阅HtmlEncode和UrlEncode现在编码单引号.

更新:我做了一些谷歌搜索,发现这个有趣的参考(哪些ASP.NET控件自动编码?)可能已经过时但至少对于这个特定情况,记录的行为是你得到的.