2011-12-07 32 views
3

在我的數據庫,我有一個包含轉義的數據文本字段:什麼時候asp.net HTML編碼元素?

"O'Neal" 

我想它輸出到我的網頁是這樣的:

LastName.InnerText = DB.LastName; 

然而,這導致了這個HTML上我的網頁:

<h2 id="LastName">O&amp;#39;Neal</h2> 

是什麼讓asp.net編碼的HTML我這樣,我可以相信它會做這一切的時候?

回答

5

使用InnerHtml而不是InnerText這將不會編碼數據。

2

InnerTextofficial documentation清楚地說,在備註欄:

與InnerHtml屬性,InnerText屬性自動將特殊字符編碼和HTML實體。 HTML實體允許您顯示特殊字符,例如<字符,瀏覽器通常將其解釋爲具有特殊含義。 <字符將被解釋爲標籤的開始,並且不會顯示在頁面上。要顯示<字符,您需要使用實體&lt;

例如,如果InnerText屬性被設置爲「<b> Hello </b>」時,<>符號被轉換爲分別&lt;&gt;。呈現的輸出將是:&lt; b &gt;你好&lt;/b &gt;&lt;&gt;實體會向瀏覽器指示這些字符將顯示在頁面上。瀏覽器不會檢測到<b>標籤並以粗體顯示文本。顯示在頁面上的文字是:<b>你好</b>

要防止自動HTML編碼和解碼,請使用InnerHtml屬性。

相關問題