ASp.net Webform多行文本框自动在页面加载时添加换行符

时间:2018-10-15 10:02:52

标签: c# asp.net webforms

从过去一两周开始,我注意到我在基于ASP.NET Web表单的网站中使用的任何多行文本框都会自动向文本框添加换行符。

在几乎所有asp.net网络表单网站都面临这个问题之前,这从未发生过

<textarea name="txtComment" rows="2" cols="20" id="txtComment" tabindex="4" class="comment-box">
</textarea> 

enter image description here

我不确定为什么会这样。当我们更新页面时,它变得很糟糕;如果我们不手动删除换行符,它将继续在多行文本框中添加换行符。我不确定此问题是否是由于某些Windows更新或浏览器引起的。发生在Firefox中,后来我在Chrome中注意到了吗?

不确定为什么会这样

示例:代码

                       

    <asp:TextBox ID="TextBox2" runat="server" TextMode="MultiLine" Rows="3"> Line </asp:TextBox>
</div>
</form>

HTML呈现的输出

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>

</title></head>
<body>
    <form method="post" action="./TESTMultiline.aspx" id="form1">
<div class="aspNetHidden">
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUJNjQ0NTE4MDYwZGRecdSIl8wWZzLW33b1SXrfQmgMkA==" />
</div>

    <div>
        <input name="TextBox1" type="text" id="TextBox1" />

        <textarea name="TextBox2" rows="3" cols="20" id="TextBox2">&#13;&#10; Line </textarea>
    </div>

<div class="aspNetHidden">

    <input type="hidden" name="__VIEWSTATEGENERATOR" id="__VIEWSTATEGENERATOR" value="F8195D5B" />
    <input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEdAAN9qVvxr9edjD9ICF1fyY9rESCFkFW/RuhzY1oLb/NUVB2nXP6dhZn6mKtmTGNHd3PbNvMJfATDdpnltdJAG8xg/EABZA==" />
</div></form>

<!-- Visual Studio Browser Link -->
<script type="application/json" id="__browserLink_initializationData">
    {"appName":"Firefox","requestId":"b33e31c27a494a9c8d0d82b3f5432ca7"}
</script>
<script type="text/javascript" src="http://localhost:61571/7d590f801da8489ebffe28d952f8f4af/browserLink" async="async"></script>
<!-- End Browser Link -->

</body>
</html>

输出

enter image description here

3 个答案:

答案 0 :(得分:2)

问题与呈现TextBox控件的方式有关。更改web.config中的controlRenderingCompatibilityVersion的值对我有用:

controlRenderingCompatibilityVersion=4.5

信息来自问题Extra characters added to multiline textbox,来自JTapp / jmoreno的答案。

答案 1 :(得分:0)

只需从此行中删除&#13;&#10;

<textarea name="TextBox2" rows="3" cols="20" id="TextBox2"> Line </textarea>

答案 2 :(得分:0)

两个选项:

  1. 在源代码中的“ _ 行”前删除空格:可能是一个不想要的字符“隐藏”在那里
  2. 尝试一起删除所有文本-并将其添加到后面的代码中:TextBox2.Text = "Line";

已编辑:

  1. 打开Chrome开发者工具,并检查所有会影响此标签的css / classes / styles