TextBox 或 Html 区域中的换行符

Posted

技术标签:

【中文标题】TextBox 或 Html 区域中的换行符【英文标题】:Line Break in TextBox or Html Area 【发布时间】:2010-09-22 17:58:58 【问题描述】:

在插入数据库(Asp.Net)时,在多行文本框或 html 文本区域中分隔换行符和空格的方法是什么。例如如果我想插入应该怎么做

你好

世界

到带有换行符的数据库?还有同时显示我应该做什么?我不想为此使用编辑器。


但问题是如何分隔换行符和空格。现在当我插入

你好

世界

或hello world,它以相同的字符保存在数据库中。因此,我无法将它们分开,尽管用户使用了上述换行符,但我正在展示你好世界。该值来自TextBox或html区域,与换行或空格相同。

【问题讨论】:

【参考方案1】:

换行符应该持续到数据库。当您检索信息并显示为 Html 时,只需将换行符(即 Environment.NewLine)替换为换行符标记(即 < b r / >

【讨论】:

别忘了先 Html.Encode(),如果是用户提交的内容,再做 Replace()。 你应该总是使用HtmlEncode(),不管内容是否是用户输入的。只需要一个不小心插入<' 就可以真正搞砸了。【参考方案2】:

< br /> 对我不起作用。 (同时将文本分配给 html textarea)

\r\n 做了。

【讨论】:

【参考方案3】:

使用 Razor (MVC3) 来显示或保留从我的数据库中提取的换行符,以下工作:

@Html.Raw(text_to_display.Replace(Environment.NewLine, "<br/>"))

【讨论】:

【参考方案4】:

几个选择: • 将换行符转换为&lt;br/&gt;。 • 将您的文字放在&lt;pre&gt; 块中。 • 将每一行放在自己的&lt;div&gt; 块中。

请记住,所有空格(SP、HT、LF、CR)在 HTML 中都会被忽略(大部分时间)。

您存储在数据库中的应该是纯字符文本。将其转换为适当的 HTML 以供显示需要用 HTML 序列替换某些字符。

【讨论】:

【参考方案5】:

你可以使用

【讨论】:

不,你不能。空格在 HTML 中(大部分)被忽略。他需要使用实际的格式化换行符,即&amp;lt;br/&amp;gt; 你是对的。我以为他是在问关于在 textarea 中添加换行符的问题。【参考方案6】:

当试图为 asp.net 页面上的 textarea 控件保留格式化的回车符/换行符时,从后面的代码中获取它的值时,您应该使用:

textarea.Value = Server.HtmlDecode(myValue.Replace("\r\n", "&#13;"));

这将从:

some blah blah\r\nblah blah

到:

some blah blah
blah blah

因此,当您使用 javascript 读取换行符时,您可以使用:

textarea.value.indexOf("\n");

【讨论】:

【参考方案7】:

我总是按提供的方式存储用户输入,但是当再次显示它时,您必须始终非常小心。换行符只是用“”替换 System.Environment.Newline 的一种情况。不确定在呈现为 html 时保留其他空白的最佳做法是什么,听听其他人的做法会很有趣。

【讨论】:

【参考方案8】:

在呈现为 HTML 后保留空白最容易通过将其转换为 HTML 实体 &amp;nbsp; 来完成。

【讨论】:

【参考方案9】:

您需要将所有的 vbcrlf (environment.newline) 实例替换为 html 标签 []

并且要允许多个空格,您需要将空格替换为 [& n b s p ;]

这会将您的普通测试转换为“足够”以被视为 html 的 html(适用于我网站的输入文本部分)

从我的标签中,它只是 [] 之间的文本并删除空格...将标签文本放入页面导致它显示为 html !!!!

【讨论】:

【参考方案10】:

上面唯一对我有用的建议是:&lt;&amp; # 1 0 ;&gt; 我正在使用现在在 Linux 服务器上运行的 Front Page 生成的文本框。

字符串的多次使用不会创建多个换行符,但是在新行上的字符串的单个条目提供了适合新段落的双换行符。

在使用 Windows 操作系统从服务器移动我的页面之前,我能够通过双“Enters”完成换行。

【讨论】:

以上是关于TextBox 或 Html 区域中的换行符的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Windows 窗体 TextBox 中添加换行符?

C#在WinForm中怎样让多行TEXTBOX的换行

Graphics2D.drawString能不能换行

.txt 文件中的 textarea 内容,但保留换行符

C# 怎么保存一个矩阵?

VB如何把文件内容显示在文本框中?