<asp:HyperLink ID="TestHyperLink" runat="server"></asp:HyperLink>
我有上面的超链接。我只是用下面的代码设置文本:
string textFromUser = "This is test's.";
string encodedText=HttpUtility.HtmlEncode(textFromUser);
TestHyperLink.Text = encodedText;
TestHyperLink.ToolTip = encodedText;
问题是超链接的文本正确,但工具提示显示编码字符。
如何使工具提示以与文本相同的方式显示?
最佳答案
您看到这个问题是因为属性值被编码了两次。
'
字符被编码成'
;&
字符被编码为&
。
最后,输出作为 title="This is test"s."
发送到浏览器。由于默认情况下属性值已被编码,您可以安全地将 Tooltip
属性设置为原始文本,并仅对 Text
属性的文本进行编码。
注意:在这种情况下,属性编码是默认执行的,但是HtmlEncode
在.NET 4.0之前的版本中没有对'
进行编码特点。参见 HtmlEncode and UrlEncode Now Encode Single Quotation Marks .
更新:我进行了一些谷歌搜索,发现了这个有趣的引用资料 ( Which ASP.NET Controls Automatically Encodes? ),它可能已经过时,但至少对于这个特定案例,记录的行为是你得到的。
关于c# - 工具提示编码问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11614632/