2009-12-28 129 views
1

我正在通過我的ASP.NET MVC應用程序中的窗體提交的textarea中顯示一些文本。爲什麼Environment.NewLine不能在我的String.Replace()中工作,但「 n」呢?

我希望在顯示文本時顯示換行符。

爲什麼

Message.Replace(Environment.NewLine, "<br />") 

不行,但

Message.Replace("\n", "<br />") 

呢?

瀏覽器提交的斷線字符是否與窗口Newline「\ r \ n」不同?

+3

這聽起來像你自己回答了這個......? – 2009-12-28 23:09:53

+1

@Marc Gravell,怎麼樣?我在一臺Windows機器上。因此,你會認爲換行符是「\ r \ n」。這是Evironment.NewLine的價值。但是,這不是瀏覽器提交換行符的價值。 – Whooper73 2009-12-28 23:13:49

回答

6

如果你看看at this stackoverflow answer,它會解釋哪些瀏覽器使用'\ r \ n',哪個使用'\ n'在javascript中。我不確定這是否適用於將信息發送到服務器。

無論哪種方式,Environment.NewLine都是運行Web服務器的環境的NewLine字符。運行在Web服務器上的軟件不應該假設客戶端的環境與您的環境相同,因此您應該編碼,假設有時您會得到Environment.NewLine,有時您會這樣做。

公分母是'\n',所以如果你使用你的第二個代碼選項,你應該處理所有的情況。

2

由於您必須在HTML文本界面中顯示,後者才能正常工作。對於一個Outlook html主體,("\n", "<br />")工作,但不是前者,即Environment.Newline

順便說一句,謝謝你的第二個。我試圖找出與HTML的東西。

相關問題