2012-06-04 78 views
1

我有文本顯示爲html,我用htmlencode過濾了內容。htmlencode導致鎖定asp.net

當我將控件更改爲文本框時,我離開了htmlencode代碼,它大部分工作。然而,當有國際性字符時,例如éúáó,頁面上的ajax調用停止工作。該頁面實際顯示正確,沒有錯誤 - JavaScript或其他,但網頁有效停止工作。

我刪除了htmlencode,現在一切正常。該應用被定義爲utf-8。

我只是好奇,如果任何人都明白髮生了什麼。

+0

你有做過自定義ajax調用嗎?可能你需要編碼你的ajax文章,因爲也許有些人物打破了網址。 – Aristos

回答

1

我的猜測是您的Ajax調用使用HTTP GET方法,並且您使用的是HTML編碼,而不是URL編碼。因此,當您的Ajax調用中構建的URL包含字符(如´(其編碼爲é的HTML編碼))時,如果它們包含重音字符,則這些URL會打破您的URL方案,導致請求永遠不會將其發送到您的服務器端控制器。 é的URL編碼實際上是%E9。網址編碼和HTML編碼是不同的。

當你刪除你的HtmlEncode調用,我想它修復了你的問題&打破了URL方案。如果我目前正確,將Ajax調用更改爲使用HTTP POST而不是HTTP GET可能是一個好主意,以確保消除了任何其他URL問題。

+0

嗯 - 我不確定你的理論是否正確,但似乎是合理的。 – mson