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

pau*_*aul 3 asp.net asp.net-mvc-2

为什么.Replace(Environment.NewLine, "<br />")给出这个结果:

asdasd<br />waahahahaha<br />asdadsa<br />multiline<br /><br /><br />asdad
Run Code Online (Sandbox Code Playgroud)

Fil*_*erg 6

可能是因为"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 />");
Run Code Online (Sandbox Code Playgroud)

html现在看起来像这样:

First line<br />Second line<br/>Multiple line breaks<br /><br /><br />some text
Run Code Online (Sandbox Code Playgroud)

编辑

在您的情况下,您的网页将显示<br />在Web浏览器中,而不是创建新行,因为它编码html输出.

你需要做的是使用HtmlString,试试这个:

<div class="display-field">
    <%: new HtmlString(Model.Body.Replace(Environment.NewLine, "<br />")) %>
</div>
Run Code Online (Sandbox Code Playgroud)

另请参阅StackOverflow上的这个帖子,谈论"ASP.NET MVC Razor - 输出HTML字符串非转义".