1

ページ内のユーザー コントロールのカスタム バリデータによって呼び出される JavaScript 関数を含む aspx ページがあります。ページには、Repeater 内で生成されたこのコントロールの複数のインスタンスを含めることができます。カスタム バリデータを含むコントロールは 1 つだけです。

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