.Replace(Environment.NewLine,"<br />")适用于localhost但不是我上传我的网站到主机时

Sta*_*tan 17 c# asp.net razor asp.net-mvc-3

我不知道为什么会这样.这是我的代码,当我在localhost上尝试它时,它工作得很好但是当我上传我的网站时,我的文字没有<br />.为什么会这样?我怎样才能用新线修复这个问题?(white-space: pre-line;对我来说这不是一个解决方案,它不适用于IE6,它正在弄乱我的风格)

@Html.Raw(Html.Encode(Model.Body)
.Replace(Environment.NewLine, "<br />"))<br />
Run Code Online (Sandbox Code Playgroud)

Ser*_*gan 35

我相信这个答案是最好的:https: //stackoverflow.com/a/8196219/550975

string result = Regex.Replace(input, @"\r\n?|\n", "<br />");
Run Code Online (Sandbox Code Playgroud)


Mar*_*rio 8

正如BuildStarted在评论中提到的那样,如果你使用的话,浏览器可能会发送\r\n或者\n会破坏Environment.NewLine- 我不认为asp.net会在运行你的代码之前解决这个问题.

我建议您使用正则表达式替换换行符:"\\r?\\n"这应该匹配两种情况(我不希望任何浏览器实际上只使用'\ r').