回发或回调参数无效的解决办法

调试一个asp.net网页,点击一个按钮调用后台函数时,报如下错误:

回发或回调参数无效。在配置中使用 <pages enableEventValidation="true"/> 或在页面中使用 <%@ Page EnableEventValidation="true" %> 启用了事件验证。出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现这些事件的服务器控件。如果数据有效并且是预期的,则使用 ClientScriptManager.RegisterForEventValidation 方法来注册回发或回调数据以进行验证。

去网上去找解决办法,网上说的办法都试了,都不管用。
没办法,只有自己找,经过逐步调试,终于找到了原因:

原来我的网页的初始化脚本函数 $(function () {}中,包含了$("select").append("<option value=''>" + "" + "</option>");语句,是为了给网页上的下拉列表元素<select>增加一个空选项。这本来也不会有问题。但是,我网页上恰好也放了一个asp.net服务器控件<asp:DropDownList>,当$("select").append("<option value=''>" + "" + "</option>");语句时,该语句把<asp:DropDownList>元素也当作<select>元素筛选进来了,这就改变了服务器控件<asp:DropDownList>的内容,于是asp.net就不允许了,所以报错。

脚本中排除对<asp:DropDownList>的处理,就可以了。希望对大家能够有所帮助。

猜你喜欢

转载自blog.csdn.net/junhm/article/details/12305393