2015-09-23 70 views
1

我想設置asp:image AlternateText。我想將其設置爲的字符串包含已經轉義的HTML實體。但asp.net然後再次逃脫它們。停止asp.net轉義HTML

我用一個簡單的賦值語句來設置它。基本上是:

imgBanner.AlternateText="José" 

但我得到的源實際上是

<img blah blah alt="Jos&amp;eacute;"> 

這當然然後顯示爲「喬斯& eacute」,而不是顯示重音符號「E」。

真的文本來自一個函數,它從數據庫中讀取它,但是我可以在調試器中看到並且在從數據庫讀取文本時發現文本是正確的,並且如果我立即檢查AlternateText的內容分配後它是正確的。但是當它到達瀏覽器時,它全部被雙重轉義。

(PS沒有必要警告我有關腳本注入攻擊,數據庫中的文本是由我輸入的,用戶無法更新此表,因此從數據庫中獲取它的原因是因爲我閱讀不同的文本取決於語言和其他參數。)

回答

1

嘗試

imgBanner.AlternateText = HttpUtility.HtmlDecode("Jos&eacute;") 
+0

是啊,這工作。似乎非常愚蠢的解碼它,所以ASP可以重新編碼它,但它的工作原理。 – Jay

+0

是的,我同意這是愚蠢的,但似乎沒有辦法阻止asp.net從一開始就編碼它。 – Glk