为什么.Replace(Environment.NewLine, "<br />")
给出这个结果:
asdasd<br />waahahahaha<br />asdadsa<br />multiline<br /><br /><br />asdad
最佳答案
可能是因为“multiline”和“asdad”之间有不止一条新线。
示例
var someText = string.Format("First line{0}Second line{0}Multiple line breaks{0}{0}{0}some text", Environment.NewLine);
var html = someText.Replace(Environment.NewLine, "<br />");
html 现在看起来像这样:
First line<br />Second line<br/>Multiple line breaks<br /><br /><br />some text
编辑
在您的情况下,您的网页将显示
<br />
在网络浏览器中,而不是创建一个新行,因为它对 html 输出进行编码。你需要做的是使用 HtmlString,试试这个:
<div class="display-field">
<%: new HtmlString(Model.Body.Replace(Environment.NewLine, "<br />")) %>
</div>
另请参阅 StackOverflow 上的此线程,讨论 "ASP.NET MVC Razor - output HTML string non escaped" .
关于asp.net - .Replace(Environment.NewLine, "<br/>"),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5002673/