1

我有一个具有 JavaScript 函数的 aspx 页面,该函数由页面内用户控件中的自定义验证器调用。该页面可以包含此控件的多个实例,这些实例在中继器中生成。只有一个控件包含自定义验证器。

JavaScript 函数通过 jQuery.ajax 调用 HTTP 处理程序,然后相应地更新 args.IsValid。

当自定义验证器触发处理程序并返回相关响应时,页面会因以下错误而爆炸:

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

我在用户控件中尝试了以下操作

protected override void Render( HtmlTextWriter writer )
    {
        if (!this.IsLocked)
        {
            Page.ClientScript.RegisterForEventValidation( this.UniqueID );
        }

        base.Render( writer );
    }

但这没有什么区别。我知道我可以在页面中禁用事件验证(这解决了问题),但我真的不想这样做。谁能解释这里的问题是什么以及我该如何解决?

干杯斯图尔特

4

0 回答 0