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

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

你好

世界

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


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

你好

世界

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

【问题讨论】:

    标签: asp.net html vb.net


    【解决方案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”完成换行。

                  【讨论】:

                    猜你喜欢
                    • 1970-01-01
                    • 2021-07-29
                    • 2011-06-06
                    • 2010-09-09
                    • 1970-01-01
                    • 2014-03-31
                    • 2012-01-28
                    • 2010-10-26
                    相关资源
                    最近更新 更多