請幫我理解爲什麼會發生這種情況。我的Web應用程序從數據庫中檢索包含撇號的文本,以使用Web窗體中的標籤進行顯示。但是,提交Web表單時發生潛在的危險錯誤。C#潛在危險錯誤,表單提交中的撇號
我可以用HttpUtility.HtmlDecode()上的數值解決這個錯誤之前,我將它設置爲Label.Text
我一直在谷歌搜索,我不能明白,導致此問題的流程。
據我所知,提交類似'潛在的HTML標記時,會發生潛在的危險錯誤,並還篩選了一些編碼的字符,如「'」
不過,我不明白是:
字符串值是否在Web窗體上顯示時自動進行HTML編碼?因爲我的數據庫中的值不是HTML編碼的。
爲什麼解碼它解決了錯誤時,從數據庫中我的價值擺在首位沒有被編碼?如果是這樣的話,我應該解碼數據庫中的所有值嗎?
是的,我看了你之前發佈的這個問題,但我仍然有懸而未決的問題。由於我的工作性質,我不允許禁用驗證。我不明白的是這個過程的生命週期;特別是HTML編碼和解碼部分。我是否正確地認爲文本在Web窗體中呈現時自動進行HTML編碼,因爲我遇到的錯誤引用了&?爲什麼HTML解碼文本解決了我的問題?相關文本在保存到數據庫中之前未經過HTML編碼。你解碼之前不需要編碼嗎? – PikaManiac
@PikaManiac我不想說你顯然需要對它進行編碼,因爲它取決於場景。然而,在這個特定的場景中,我認爲你確實需要這樣做,因爲我假設你有一個texarea或者某人正在插入這個東西:「不要」,當你編碼它時,它會變成「don &?t「,瀏覽器可以理解並可以渲染爲」不「。 看看這個小提琴https://jsfiddle.net/b41v18dq/1/ – rjso