0

我有一个 asp.net 页面。在一个特定页面上,我可以添加评论,当我添加这些评论时,它们会保存到数据库中。当我想要换行时,当我在后端代码中查看它时,会自动显示“\n”标签。

所以现在当我收到回复时,我想回复我的评论,但我希望他们在显示“\n”的那些特定位置有中断空间。

我在我的后端代码(cs)中尝试了这个:

Text = text.replace("\n", "<br/>")

我得到的结果:

my test<br/> test text new line<br/>

我的<br>标签显示为文本。

为了澄清我基本上想要实现这一点: 为什么我的“<br />”标签被转换为“<br />”?

但是来自 C# 中的后端代码。

我一直在谷歌搜索,但无法找到答案。

4

2 回答 2

5

如果您使用的是 ASP.NET WebForms 并将文本放在 Label 控件中,这是正常行为。Label 控件在呈现之前对其文本进行 html 编码。

Literal 控件不使用 html 编码,因此如果您将 Label 更改为 Literal,它应该可以工作。

如果您使用的是 ASP.NET MVC,请尝试使用@Html.Raw(Model.Text).

于 2013-05-08T08:34:39.860 回答
1

您需要HtmlString在打印之前使用您的内容创建一个。所以你的代码就像

var foo = new HtmlString(text.replace("\n", "<br/>"));

你会打印foo.

于 2013-05-08T08:28:44.257 回答