Javascript 回发包含修改列表时出现ASP.NET错误

Javascript 回发包含修改列表时出现ASP.NET错误,javascript,asp.net,webforms,postback,Javascript,Asp.net,Webforms,Postback,我正在使用JavaScript/jQuery将元素动态添加到WebForms页面的下拉列表中。这工作正常,但当我将页面发布回服务器时,会出现以下错误: 回发或回调参数无效。在配置或页面中使用启用事件验证。出于安全目的,此功能验证回发或回调事件的参数是否源自最初呈现它们的服务器控件。如果数据有效且符合要求,请使用ClientScriptManager.RegisterForEventValidation方法注册回发或回调数据以进行验证 我想我理解这里发生的事情:ASP.NET正在验证列表是否与最初

我正在使用JavaScript/jQuery将元素动态添加到WebForms页面的下拉列表中。这工作正常,但当我将页面发布回服务器时,会出现以下错误:

回发或回调参数无效。在配置或页面中使用启用事件验证。出于安全目的,此功能验证回发或回调事件的参数是否源自最初呈现它们的服务器控件。如果数据有效且符合要求,请使用ClientScriptManager.RegisterForEventValidation方法注册回发或回调数据以进行验证

我想我理解这里发生的事情:ASP.NET正在验证列表是否与最初提供的列表相同,并检测到它已更改。这是一种安全功能,因为这表示数据是从修改过的页面提交的

但是,在这种情况下,该行为是有效的。我不想禁用这个功能,因为它是我页面其余部分的一个很好的安全功能

有没有办法告诉ASP.NET只忽略对这一列表的更改

编辑:


我的代码位于Web用户控件中,因此我认为可以为该控件设置
EnableEventValidation
属性。不幸的是,此属性似乎仅适用于整个页面。

我发现通过创建如下自定义DropDownList控件可以消除此错误:

public class DropDownListNoEventValidation : DropDownList
{
}
这显然创建了一个名为
DropDownListNoEventValidation
的控件,该控件没有属性
SupportsEventValidation

结果是消除了我以前遇到的错误。不幸的是,如果所选值是动态添加到列表中的项目,则ASP.NET似乎无法识别该值。我还在解决那个问题

更新:


我最终使用了一个
元素,而没有
runat=“server”
。这需要更多的工作,但似乎是使其按预期工作的最直接的方法。

您如何回帖?只需单击服务器按钮控件。请发布代码。什么代码?这是一个按钮。单击它会自动发回。导致此错误的不是我的代码,而是ASP.NET。通常情况下,当您对
\u doPostBack('ControlID','someArguments')执行自定义调用时会发生这种情况。
您是否有可能在某处执行类似的操作?听起来很有趣。您是否尝试使用使服务器端访问更容易?我没有尝试。我想我可以。我真的不知道这个标签有多少服务器端功能。如果它没有坏-不要修复:)如果你的解决方案对你有用-就用它吧。