我假设您至少使用 .Net 4.0?我根据你的问题做了一个小例子,并注意到了同样的行为。幸运的是,我找到了一个快速的解决方案(甚至在 Stackoverflow 上 - Allow html in asp.net textboxes)。
aspx
<%@ Page Language="C#" AutoEventWireup="true" ValidateRequest="false" CodeFile="commonQuestions.aspx.cs" Inherits="commonQuestions" %>
.....
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:TextBox ID="TextBox1" runat="server" Height="81px" TextMode="MultiLine" Width="264px"></asp:TextBox>
<br />
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Send" />
</ContentTemplate>
</asp:UpdatePanel>
</form>
代码隐藏
protected void Button1_Click(object sender, EventArgs e)
{
// do something
Debug.WriteLine("Text: " + TextBox1.Text);
}
添加到web.config
<httpRuntime requestValidationMode="2.0" />
在这里,我们从 MS那里得到了一个很好的解释,指的是 ASP.Net 4 中的变化
因此,以前未触发错误的请求现在可能会发生请求验证错误。要恢复到 ASP.NET 2.0 请求验证功能的行为,请
在 Web.config 文件中添加设置(见上文) :