我在updatePanel中有一个多行文本框。用户可以输入他需要的任何笔记。如果他在角括号内输入 电子邮件地址,那么在提交或取消时,我会得到 PageRequestManagerServerErrorException 500 。
如果他在这些备注中输入的电子邮件地址为myaddress.xxx.ca
而没有括号,则无错误。
文本框应该允许他输入他想要的任何东西,这只是他的笔记。
我已经尝试到页面指令中的RequestValidation = "false"
,但此不起作用。
任何建议都将不胜感激。
布赖恩
答案 0 :(得分:0)
我假设你至少使用.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得到了一个非常好的解释,参考changes in ASP.Net 4
因此,请求验证错误现在可能会发生 以前没有触发错误。要恢复到的行为 ASP.NET 2.0请求验证功能,添加设置(见上文) 在Web.config文件中: