用Response.Redirect()或Response.Write()进行URL带参数的页面重定向时出现如题所示的错误。Ajax是无刷新的,而使用Response进行带参重定向时需要刷新页面。所以只须在UpdatePanel下设置“asp:PostBackTrigger”的“ControlID”为指定的控件名称即可,如:
<Triggers>
<asp:PostBackTrigger ControlID="btnSave" />
</Triggers>
按照上面所述的方法修改之后,发现确实不再提示这个错误,但是却无法满足我的要求。因为我用AJAX就是为了实现页面无刷新,而现在使用了PostBackTrigger之后,页面肯定会刷新。后来继续寻找,终于看到有人作了一个这样的回答:
添加了"event validation"的功能, ASP.NET会检查 POST方法中的所带的参数,如果认为不合法,就会抛出异常。这个设计的目的是为了防止恶意用户利用post 方法发送一些恶意数据,但是有时一些常见的case也会出错。