C# .Replace(Environment.NewLine,“br/>;”)在本地主机上工作,但在我将网站上载到主机时不起作用
我不知道这是为什么。这是我的代码,当我在localhost上尝试它时,它非常有效,但当我上传我的网站时,我的文本没有C# .Replace(Environment.NewLine,“br/>;”)在本地主机上工作,但在我将网站上载到主机时不起作用,c#,asp.net,asp.net-mvc-3,razor,C#,Asp.net,Asp.net Mvc 3,Razor,我不知道这是为什么。这是我的代码,当我在localhost上尝试它时,它非常有效,但当我上传我的网站时,我的文本没有。为什么会发生这种情况?我如何用新的线路解决这个问题?(空白:pre-line;对我来说不是一个解决方案,它在IE6上不起作用,而且它会干扰我的风格) @Html.Raw(Html.Encode(Model.Body) .Replace(Environment.NewLine,“”) 不要使用环境。换行符,请尝试以下操作: someString.Replace(@"\r\n", "
。为什么会发生这种情况?我如何用新的线路解决这个问题?(空白:pre-line;
对我来说不是一个解决方案,它在IE6上不起作用,而且它会干扰我的风格)
@Html.Raw(Html.Encode(Model.Body)
.Replace(Environment.NewLine,“
”)
不要使用环境。换行符
,请尝试以下操作:
someString.Replace(@"\r\n", "<br/>");
someString.Replace(@“\r\n”和“
”);
正如评论中提到的BuildStarted,浏览器可能会发送\r\n
或\n
,如果您使用环境。换行符
——我不认为asp.net会在运行代码之前解决这个问题
我建议您使用正则表达式替换换行符:
“\\r?\\n”
这应该匹配这两种情况(我不希望任何浏览器实际只使用“\r”)。我相信这个答案是最好的:
string result=Regex.Replace(输入,@“\r\n?|\n”,“
”);
自从IE6以来发生了很多事情(感谢上帝!),所以我只想提及解决这个问题的CSS解决方案
在你的简历中:
在CSS中:
.newlines {
white-space:pre-line;
}
在你的剃刀里:
<div class="newlines">@ViewBag.StringText</div>
@ViewBag.StringText
是环境的定义。NewLine
在两个地方都是一样的?在处理web输入时,我总是将\n
替换为使用Environment.NewLine,因为不同的浏览器可以发送\r\n
或\n
,但它们都至少发送\n
ViewBag.StringText = "some text" + Environment.NewLine + "more text in a new line";
.newlines {
white-space:pre-line;
}
<div class="newlines">@ViewBag.StringText</div>