2012-10-09 39 views
4

我想在显示到网页之前格式化内容。我将'\ r \ n \'存储为数据库中的输入内容,并尝试在显示网页上的内容之前将其替换。服务器端我的代码是:如何在网页中断行?

lblComments.Text = Server.HtmlEncode(((DataRowView)e.Item.DataItem).Row["Comment"].ToString().Replace("\r\n", "<br>")); 

我使用Server.HtmlEncode

我出认沽应该是:

Comment Type: Public 
Comment: Commented on the Data by user A 

但是,它显示我一切都在单行。

+1

什么是实际输出?当你查看渲染页面的源代码时,你看到'
'元素还是你看到'\ r \ n'? – Oded

+0

小心'\ r \ n',这就是Windows上的行结束符,你确定你永远不会处理unix/mac格式的文件吗? – Benj

回答

2

您需要使用

.Replace("\r\n", "<br/>") 

而且只有 Server.HtmlEncode,因为你不想在<br/>本身获得编码为&lt;br/&gt;(原),显示为<br/>字面上。

+0

如果'
'是HTML编码,我希望看到'
'呈现在页面上。这不是OP发布的内容。 – Oded

0

您可以将输出包装在<pre>...</pre>元素中,而不是用<br>替换换行符。这样,换行应该被保留。

E.g.把<pre>元素在你的标签:

<pre><asp:Label id="lblComments" runat="server" /></pre> 
0

尝试

Replace("\n", "<br>") 

该测试工作没有编码

string comments = @"Comment Type: Public 
Comment: Commented on the Data by user A"; 
lblComments.Text = comments.Replace("\n","<br>");