【发布时间】:2012-01-05 22:38:22
【问题描述】:
我不确定为什么以下代码没有按预期工作:
litMessage.Text = messageBody.Replace(Environment.NewLine, "<br/>")
其中litMessage 是文字控件的名称,messageBody 是字符串变量的名称。
我的目的是将字符串输出到网页上,并用 br 标签替换换行符,以便它可以正确显示在页面上。然而,什么都没有被取代。查看页面源代码时,字符串中似乎仍然存在换行符。同样,通过 MsgBox 显示字符串时,也正常显示。我也试过用pre标签包装输出,它也能正确显示换行符。
字符串最初是由用户通过使用 asp:Textbox 输入的,并保存到 MSSQL 数据库中。它使用 asp:Literal 控件检索并显示在另一个网页上。字符串在提交之前唯一发生的事情是它被修剪(即textbox.Text.Trim())。
也许有什么我没有考虑到的?
编辑#1:由于时间限制,我决定只用pre 标签包装文本。这是一个可以接受的解决方法,因为它保留了换行符。不幸的是,它没有解释为什么代码一开始就不起作用。同时,在找到正确答案之前,我将不回答这个问题。
编辑#2:在下面找到并回答了解决方案。已将 UpdatePanel 标签添加到问题中以供将来参考。
【问题讨论】:
-
为什么不使用 myString.Replace("\n", "
") 呢?替换将适用于每个平台,因为“\n”包含在每个版本的换行符中。 -
并非总是如此,显然 :-): en.wikipedia.org/wiki/Newline#Representations
-
@Alexander Galkin 我试过了,结果是一样的。
标签: asp.net html vb.net updatepanel line-breaks