我正在使用 JavaScript/jQuery 将元素动态添加到 WebForms 页面上的下拉列表中。这工作正常,但是当我将页面发布回服务器时,我收到以下错误:
无效的回发或回调参数。使用配置或页面中的 <%@ Page EnableEventValidation="true" %> 启用事件验证。出于安全目的,此功能验证回发或回调事件的参数是否源自最初呈现它们的服务器控件。如果数据有效且符合预期,请使用 ClientScriptManager.RegisterForEventValidation 方法注册回发或回调数据以进行验证。
我想我明白这里发生了什么:ASP.NET 正在验证该列表是否与最初提供的列表相同,并检测到它已更改。这是一项安全功能,因为这表明数据是从修改后的页面提交的。
但是,在这种情况下,该行为是有效的。而且我不希望禁用此功能,因为它对我的页面的其余部分来说是一个很好的安全功能。
有没有办法告诉 ASP.NET 只忽略对这一个列表的更改?
编辑:
我的代码位于 Web 用户控件中,因此我认为EnableEventValidation
为控件设置属性可能是可以接受的。不幸的是,此属性似乎仅适用于整个页面。