2011-04-18 35 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

相關問題