.Replace(Environment.NewLine,“<br/>”)

时间:2011-02-15 10:47:29

标签: asp.net asp.net-mvc-2

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

asdasd<br />waahahahaha<br />asdadsa<br />multiline<br /><br /><br />asdad

1 个答案:

答案 0 :(得分:5)

可能是因为“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"