为什么Environment.NewLine不能在我的String.Replace()中工作但是"\n"呢?

Who*_*r73 1 c# asp.net-mvc

我正在通过我的ASP.NET MVC应用程序中的表单提交的textarea中显示一些文本.

我希望在显示文本时显示换行符.

为什么

Message.Replace(Environment.NewLine, "<br />")
Run Code Online (Sandbox Code Playgroud)

不行,但是

Message.Replace("\n", "<br />")
Run Code Online (Sandbox Code Playgroud)

呢?

浏览器提交的breakline字符是否与windows Newline"\ r \n"不同?

mls*_*ves 6

如果你看一下这个stackoverflow答案,它会解释哪些浏览器使用'\ r \n'以及哪些浏览器在javascript中使用'\n'.我不确定这是否适用于向服务器发送信息.

无论哪种方式,Environment.NewLine都是运行Web服务器的环境的NewLine字符.您在Web服务器上运行的软件不应该假设客户端的环境与您的相同,所以您应该编写代码,假设有时您会得到Environment.NewLine,有时您不会.

共同点是'\n',所以如果你使用第二个代码选项,你应该处理所有的情况.