文本框中的电子邮件地址会导致PageRequestManagerServerErrorException

时间:2012-10-10 19:48:05

标签: asp.net

我在updatePanel中有一个多行文本框。用户可以输入他需要的任何笔记。如果他在角括号内输入 电子邮件地址,那么在提交或取消时,我会得到 PageRequestManagerServerErrorException 500

如果他在这些备注中输入的电子邮件地址为myaddress.xxx.ca 而没有括号,则无错误

文本框应该允许他输入他想要的任何东西,这只是他的笔记。

我已经尝试到页面指令中的RequestValidation = "false",但此不起作用

任何建议都将不胜感激。

布赖恩

1 个答案:

答案 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文件中: