2011-04-18 25 views
6

我有一个建立锚定标记的函数。该函数接收URL,Title作为参数。问题是,有时文本包含引号,并且这会导致生成语法错误的锚标记。锚定中的“title”属性的格式/安全字符串

哪个是解决这个问题的最好方法?是否有任何函数将文本解析为安全字符串,在这种情况下,是为title属性。

否则我可以检查该串并去掉所有引号,但我想知道是否有更好的方式来做到这一点,e.g可能有一些其他的字符会崩溃我的功能以及。

+0

您使用ASP .NET? – 2011-04-18 14:13:16

+0

是的,我使用ASP.NET – tif 2011-04-18 14:36:29

回答

8

其实你想用HttpUtility.HtmlAttributeEncode来编码你的title属性。其他编码器会做更多的工作(并有不同的用途),而这一只逃脱”,&,并<来生成属性的有效文本

例: This is a <"test"> & something else.成为This is a &lt;&quot;Test&quot;> &amp; something else.

+0

辉煌,这就是我一直在寻找 – tif 2011-04-18 14:36:54

+0

,感谢Joshua。我现在用的是我建立生成我锚标记的自定义功能。是否有在图书馆我的任何功能可以使用,这可能是一个更好,更安全的方法。谢谢 – tif 2011-04-18 14:39:47

+0

这取决于复杂性,你可以使用'HtmlTextWriter'类属有效的HTML。虽然这对于简单的东西来说很重要......我只在渲染复杂的控件时才使用它。如果你使用'HtmlTextWriter'方法,您可以通过使用'StringBuilder'对象在内存中生成它,包裹在一个'TextWriter'对象,则具有'HtmlTextWriter'写入这一点 - 通过'StringBuilder的抢HTML .ToString()'方法。另外,如果你使用'HtmlTextWriter'方法,确保渲染开始标记之前添加的属性。 (这可能是简单的手工做):) – Joshua 2011-04-18 15:42:46

相关问题