我從一開始就一直在爲ASP.NET編寫代碼,今天我遇到了一些我從未見過的東西。通常,我在C#中查找換行符(例如,當從textarea發佈到ASP.NET中時)預計爲「\ r \ n」。現在我正在使用MVC框架,並且來自textarea的線路文本只有「\ n」換行符。C#和ASP.NET中的換行符有什麼區別? ( r n與 n)
在舊式的TextBox控件中是否存在正常化換行符的事情?由於MVC只是使用表單數據,這是正常的嗎?很想得到一些見解。
我從一開始就一直在爲ASP.NET編寫代碼,今天我遇到了一些我從未見過的東西。通常,我在C#中查找換行符(例如,當從textarea發佈到ASP.NET中時)預計爲「\ r \ n」。現在我正在使用MVC框架,並且來自textarea的線路文本只有「\ n」換行符。C#和ASP.NET中的換行符有什麼區別? ( r n與 n)
在舊式的TextBox控件中是否存在正常化換行符的事情?由於MVC只是使用表單數據,這是正常的嗎?很想得到一些見解。
我已經觀察到,實際的換行順序因瀏覽器而異。
如果你有一個頁面上的多文本區域,並提交頁面,則:
IE返回「\ r \ n」表示換行。 FF在這種情況下返回「\ n」。
我在2006年底的某個地方測試過它,所以它現在可能會有所不同。
我不相信它可能與WebForms與MVC有任何關係。兩者都只是處理提交的輸入並將其返回給你。
如果你想以某種方式處理和將這些字符替換它將使意義,這樣做在長到短的順序:
string userText = form["Text"];
userText = userText.Replace ("\r\n", "<br/>").Replace ("\r", "<br/>");
string userText = form["Text"];
userText = userText.Replace (Environment.NewLine, "<br />")
還拿看看@Haacked的帖子吧關於一些newline textarea quirks。
只是確認,你的意思是使用「\ n」而不是「\ r」字符串userText = form [「Text」]; (「\ n」,「
」); userText = userText.Replace – 2011-09-08 03:51:25