UpdatePanel中的PostBack上的HttpRequestValidationException

时间:2009-09-08 20:57:43

标签: c# asp.net ajax

当我在HttpRequestValidationException包含任何HTML时尝试发帖时出现

txtBulletin,例如“Hello<br />World

Bulletin.aspx

<asp:UpdatePanel ID="upContent" runat="server" UpdateMode="Always">
    <ContentTemplate>
        <div class="content bulletin-content">
            <asp:TextBox ID="txtBulletin" runat="server"
                         TextMode="MultiLine" />
            <div class="bulletin-edit">
                <asp:ImageButton ID="btnSaveBulletin" runat="server" 
                         ImageUrl="~/images/icons/check.gif"
                         CommandName="SaveChanges"
                         OnCommand="btnEditBulletin_Click"
                         Visible="false" />
            </div>
        </div>
    </ContentTemplate>
</asp:UpdatePanel>

Bulletin.aspx.cs

protected void btnEditBulletin_Click(object sender, CommandEventArgs e)
{
    if (e.CommandName == "Edit")
    {
        // Do something
    }
    else if (e.CommandName == "SaveChanges")
    {
        // Do something
    }
    else if (e.CommandName == "Cancel")
    {
        // Do something
    }
}

我不知道如何绕过这个,或者为什么它为我做验证。出错时,在刷新页面之前,页面不再处理任何PostBack事件。

1 个答案:

答案 0 :(得分:4)

ASP.NET检查POST值是否存在潜在危险的字符串。这样做是为了防止DoS攻击等。

要禁用此功能,您需要编辑web.config文件。确保<system.web>下面存在以下元素:

<pages validateRequest="false" />

或者,要逐页关闭请求验证,请在相关ASPX页面顶部的@Page声明中将ValidateRequest属性设置为false。

编辑:包含有关如何针对特定网页关闭请求验证的详细信息。