我注意到ASP.NET MVC的TextAreaFor HTML助手中最煩人的(可能的)錯誤。出於某種原因,HTML助手會在textarea中的任何內容之前添加一個NewLine。顯然,這是爲了打破個人內容可能出現的故障問題,並且瀏覽器根據規範忽略它。ASP.NET MVC Textarea HTML助手在使用AntiXssLibrary時添加行
然而,加入它,我得到了更多的惱人的錯誤,現在我的所有文字區域的自動對窗體加載任何內容之前一個額外的行(即這表明了在這個領域的任何內容之前: ) 。看起來有些東西在吐出之前正在對「換行符」進行編碼。
任何人都有解決方法嗎?我想到的是,預期的行爲是爲它打印出來
<textarea>
Stuff</textarea>
不是
<textarea> Stuff</textarea>
我越來越...
編輯 經進一步檢查,它出現這是由於我使用AntiXssLibrary進行編碼而不是默認的HtmlEncoder。我使用的4.0版本,和我的編碼器類方法是這樣的:
protected override void HtmlEncode(string value, TextWriter output)
{
output.Write(Microsoft.Security.Application.Encoder.HtmlEncode(value));
}
所以我的想法是,既然TagBuilder類,它從TextAreaHelper叫,HTML編碼標籤的內容,它是假設默認HTML編碼器的行爲,但AntiXssLibrary更徹底,因此您會看到這種行爲?
我測試了我們的工作MVC3的網站之一,並沒有看到您所描述的行爲。也許你可以發佈更多信息。 – JasonG
每次我開始一個新項目時,都會觸動我。順便說一句,我只看到這種行爲與FireFox,而不是IE或Chrome到目前爲止。 – mxmissile