从<textarea>

时间:2015-05-18 14:54:04

标签: html textarea visual-web-developer

&lt; p&gt;我正在使用带有C#和HTML的Visual Web Developer构建一个站点。 &LT; / p为H. &lt; p&gt;我有一个页面,用户可以在textarea标签中写下有关我网站的反馈,然后提交(在textarea中,他们可以在任何地方进行换行)。&lt; / p&gt; &lt; p&gt;问题是,当我收到他们写的文本时,它显示没有换行符,例如:&lt; / p&gt; &lt; p&gt;如果用户写道:&lt; / p&gt; &lt; pre&gt;&lt; code&gt;“你好,我的名字是 欧麦N.“ &LT; /代码&GT;&LT; /预&GT; &lt; p&gt;当我收回它时,它将如下所示:“你好,我的名字是Omer N。”。&lt; / p&gt; &lt; p&gt;如何解决此问题?&lt; / p&gt;

1 个答案:

答案 0 :(得分:0)

取决于您如何存储值。请记住HTML和来自空白规则后面的字段的常规输入,它会将空白截断/压缩成单个实体。

<%# Eval("MyMultiLineValue").ToString().Replace(<linebreak>,"<br />") %>

这是默认行为。

为了保持换行符,间距等等,您需要FlxSpriteGroupescape itencoding进程,然后才能存储它。

解释decoding

  

许多网络开发的新手都无法理解为什么   他们根据textarea或a的输入数据进行回车   当网页呈现时,不会出现文本文件,Excel电子表格等。

     

一旦新手意识到网络,解决方案就相当明显了   页面只是浏览器对html标记的解释,而且是一个   html中的新行由
标记表示。那么需要什么   是一种通过
标签交换回车或换行的方法。   嗯,实际上是替换()它们的方法。

<%# Eval("MyMultiLineValue").ToString().Replace(Environment.NewLine,"<br />") %>
  

string.Replace()方法允许这样做,但我们还需要识别   我们想要用html标签替换什么。一条新线怎么样?    用C#或VB.Net表示?

     

在C#中,它是“\ r \ n”,而在VB.Net中,它是vbcrlf。但是,有   也是一个独立于语言的选项,可以做同样的事情:   Environment.NewLine。

string::const_iterator it = str.begin();

while(it != str.end() && isdigit(*it))
{
    it++;
}

if (!str.empty() && it == str.end())
    cout << "not a string";
else
    cout << "valid";

希望这有帮助! :)