.Replace(环境.NewLine, "
")在本地主机上工作,但不是当我上传我的网站

本文关键字:quot 工作 网站 我的 主机 NewLine 环境 br Replace | 更新日期: 2023-09-27 18:14:23

我不知道这是为什么。这是我的代码,它的工作完美,当我尝试它在本地主机,但当我上传我的网站,我的文字没有<br /> 's。我如何用新线解决这个问题?(white-space: pre-line;对我来说不是一个解决方案,它不能在IE6上工作,它扰乱了我的风格)

@Html.Raw(Html.Encode(Model.Body)
.Replace(Environment.NewLine, "<br />"))<br />

.Replace(环境.NewLine, "<br />")在本地主机上工作,但不是当我上传我的网站

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

string result = Regex.Replace(input, @"'r'n?|'n", "<br />");

正如BuildStarted在评论中提到的,浏览器可能会发送'r'n'n,这将打破,如果你使用Environment.NewLine -我不认为asp.net会修复之前运行你的代码。

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

自IE6以来发生了很多事情(感谢上帝!)所以我只想提到CSS解决这个问题。

在c#中:

ViewBag.StringText = "some text" + Environment.NewLine + "more text in a new line";

在你的CSS中:

.newlines { 
  white-space:pre-line; 
}

In your Razor:

<div class="newlines">@ViewBag.StringText</div>

不使用Environment.NewLine,试试这个:

someString.Replace(@"'r'n", "<br/>");