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

时间:2009-12-28 23:07:30

标签: c# asp.net-mvc

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

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

为什么

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

不起作用,但是

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

确实

浏览器提交的分隔线字符是否与Windows Newline“\ r \ n”不同?

2 个答案:

答案 0 :(得分:6)

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

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

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

答案 1 :(得分:2)

由于您必须在HTML文本界面中显示,后者才有效。对于Outlook html正文,("\n", "<br />")有效,但前者无效,即Environment.Newline

顺便说一句,谢谢你的第二个。我试图用html找出一些东西。