0

最近、ページが有効かどうかを確認するために、サーバー側のコードでいくつかのチェックを実行する必要があることがわかりました。以前は、バリデーターが間違った入力を見つけたときに実行が自動的に停止すると想定していました。

検証が必要なイベントに次のコードを追加しました。

    if (!Page.IsValid)
        return;

これは正しい方法ですか?

また、ページに 2 つの検証グループがある場合、サーバー上で正しいグループ (ボタンによってトリガーされたグループ) が自動的に実行されますPage.Validate("groupName")か?

ありがとう

4

1 に答える 1

2

クライアントとサーバーの両方で確認することをお勧めします。クライアントの部分は自動的に行われる必要がありますが、誰かが何らかの手段で UI をバイパスした場合に備えて、サーバーでチェックするのは防御策です。

ValidationGroup をボタンに割り当てることができます。これは、バリデーターに割り当てた ValidationGroup と同じ値にする必要があります。ボタンをクリックすると、同じグループに対してクライアント側の検証が実行され、前述のように実行が停止されます (ポストバックが防止されます)。

サーバー側では、あなたが述べたように正確に行います:

Page.Validate("WhateverGroup");
if (!Page.IsValid)
   return; //Didn't pass validation
else
   //Do whatever

複数のグループがある場合は、該当する場合はそれぞれにチェックを入れる必要があります (特定の条件によっては、一部のグループが適用されない場合があるため、通常はグループを使用します)。

編集

あなたの質問に答えて:

チェックされる「デフォルト」グループは、ページをポストしているコントロールによって決定されます。つまり、ページを投稿するコントロールがその検証グループとして「WhateverGroup」を持っている場合、「WhateverGroup」を持つバリデータのみが検証されます。

Page.IsValidメソッドを呼び出した後にのみチェックする必要がありますPage.ValidatePage.IsValidグループの有無にかかわらず、Page.Validate を呼び出すと何かが検証されないときに基本的にトリップされる単なるフラグです。

参考文献:

于 2012-06-08T21:45:35.647 に答える