問題タブ [event-validation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1247 参照

asp.net - EventValidation - いくつかのリクエストで __EventValidation 値が欠落している

更新パネル内にテキストボックスがあり、テキストの変更時にポストバックします。サーバーへの POST リクエストの約 1000 分の 1 で、__EventValidation フォーム要素が欠落しています (この例外が発生したときに、リクエストにこのフォーム要素が欠落していたことをログを使用して確認しました)。

これは常に発生しているわけではないため、コーディングの問題を除外しています。フォームが完全に読み込まれる前に、ユーザーがフォームを投稿していると思われます。


質問: Render メソッドをオーバーライドして Response.Flush を実行していない場合、この __EventValidation 要素をフォームの下部ではなく上部に移動してもよろしいですか?

0 投票する
6 に答える
3132 参照

.net - 無効なポストバックまたはコールバック引数

この質問は以前にもあったようですが、私の状況は少し違うように感じます。

グリッドビューを含むページがあります。グリッドビュー内のレコードの 1 つを編集するためにボタンが押されると、ボタンはまず、編集のためにモーダル ウィンドウをポップアップするクライアント スクリプトを実行します (.onClientClick を使用して設定)。このポップアップから、ユーザーは [更新] をクリックしてデータベースを更新し、ウィンドウを閉じます。ウィンドウが閉じられると、ボタンのサーバー側コードが起動し、関数が呼び出されてグリッドビューが更新されます。代わりに、次のエラー メッセージが表示されます。

ポストバックまたはコールバック引数が無効です。イベントの検証は、構成またはページで使用して有効にします。セキュリティ上の目的で、この機能は、ポストバック イベントまたはコールバック イベントへの引数が、それらを最初にレンダリングしたサーバー コントロールから発信されていることを確認します。データが有効で期待される場合は、ClientScriptManager.RegisterForEventValidation メソッドを使用して、検証のためにポストバックまたはコールバック データを登録します。

本当にイライラするのは、これとまったく同じロジックを別のページで使用し、正常に動作することです。

これを回避する方法について何か提案はありますか?

更新: クライアント側スクリプトを追加したコード行を削除しましたが、まだエラーが発生します。したがって、単にポストバックが原因であると確信しています。よく調べてみると、実際にはいくつかの ListItems がプログラムによって DropDownLists にバインドされていることがわかりました。だから...私はおそらくClientScriptManager.RegisterForEventValidationのことをする必要があります....それを行うための構文がどのように見えるかについて、誰かが私に例を与えることができますか? ScriptManager オブジェクトとは異なる設定になっているようです....

0 投票する
1 に答える
329 参照

asp.net - JavaScriptがオフの場合のリピーター制御

1 つ以上のカスタム コントロール インスタンスをネストするリピーターがあります。各カスタム コントロール インスタンスには、ドロップダウンと「更新」というボタンがあります。

JSがオンの場合、これはすべて正常に機能します。

ただし、JS をオフにすると、「無効なポストバックまたはコールバック引数。イベント検証が有効になっています...」というエラーが表示されます。

このことを考えると、次のことが起こっていると思います。

ASP.NET は、ページの ViewState を作成します。ページがポストバックされると、ビューステートは、ASP.NET が配置する js フックを介してページに戻される必要があります。
ただし、JS が OFF であるため、これは返されません。次に、ASP.NET は、予期した ViewState と受け取った ViewState の間の不一致にフラグを立てます。

これは正しいです?

その場合、推奨されるアクションは何ですか?

ありがとう

0 投票する
0 に答える
50 参照

javascript - イベント検証エラーを発生させずに Javascript を使用してチェックボックスをチェックするにはどうすればよいですか?

一度に 1 つ以上の行を削除するために使用されるテンプレート フィールドにチェック ボックスのあるグリッド ビューがあります。次に、サーバーにポストバックし、チェックボックスがオンになっている行を削除するボタンがあります。それはうまくいきます。私は最近、JavaScript ですべてのボックスをチェックし、ポスト バックして同じ関数を実行し、チェックされた行を削除することで、すべての行を自動的に削除するボタンを追加しました。これも機能しますが、その後 ([すべて削除] ボタンを使用)、他のポスト バックによってイベント検証エラーが発生します。

エラー:

PageOmittedの行 885、列 13 で未処理の例外

0x800a139e - JavaScript ランタイム エラー: Sys.WebForms.PageRequestManagerServerErrorException: ポストバックまたはコールバック引数が無効です。イベントの検証は、設定で使用するか、ページで <%@ Page EnableEventValidation="true" %> を使用して有効にします。セキュリティ上の目的で、この機能は、ポストバック イベントまたはコールバック イベントへの引数が、それらを最初にレンダリングしたサーバー コントロールから発信されていることを確認します。データが有効で期待される場合は、ClientScriptManager.RegisterForEventValidation メソッドを使用して、検証のためにポストバックまたはコールバック データを登録します。

まず、問題の原因となっている投稿ではなく、次の投稿でエラーがポップアップするのは奇妙です。しかし、私の質問は、イベントの検証を通過するにはどうすればよいですか? それを行う簡単な方法はありますか?MSDN のエラーに記載されている 'RegisterForEventValidation' メソッドを見ましたが、その頭も尻尾もわかりませんでした...オプションはありますか?