検証コントロールは、ユーザー入力をテストし、エラー状態を設定し、エラー メッセージを生成します。これらはページの処理フローを変更しません。たとえば、ユーザー入力エラーが検出されたときにコードをスキップしません。代わりに、アプリケーションの特定のロジックを実行する前に、コードでコントロールの状態をテストします。エラーが検出された場合、独自のコードは実行されず、ページの処理が続行され、エラー メッセージがユーザーに返されます。
セキュリティに関する注意: デフォルトでは、ASP.NET Web ページは、悪意のあるユーザーがアプリケーションにスクリプトまたは HTML 要素を送信しようとしているかどうかを自動的に検証します。
ページ全体の一般的な状態をテストしたり、個々のコントロールの状態をテストしたりできます。通常、これはページ用に作成したイベント ハンドラーで実行します。
1. 一般的なエラーステータスのテスト
コードで、ページの IsValid プロパティをテストします。このプロパティは、ページ上のすべての検証コントロールの IsValid プロパティの値を蓄積します (論理 AND を使用)。検証コントロールが無効に設定されている場合、ページのプロパティは false を返します。
説明: ページの初期化または読み込み段階では、認証情報を利用できません。ただし、Page_Load 中に Validate メソッドを手動で呼び出して、ページの IsValid プロパティをテストすることができます。
次のコード例は、ボタンのイベント ハンドラーを示しています。このコードは、ページの IsValid プロパティをテストします。ページは自動的にブラウザに戻り、検証コントロールによって独自のエラー メッセージが表示されるため、ここでは他の句は必要ないことに注意してください。
void Button1_Click(オブジェクト送信者、System.EventArgs e)
{
if(有効)
{
// ここでデータベースの更新またはその他のロジックを実行します。
}
}
2. 個々のコントロールのエラーステータスをテストする
ページの Validators コレクションを調べます。このコレクションには、すべての検証コントロールへの参照が含まれています。その後、各検証コントロールの IsValid プロパティを確認できます。
注: Page_Load 中にこのチェックを実行する場合は、まず Validate メソッドを手動で呼び出す必要があります。
次のコード例は、単一の検証コントロールの状態を取得する方法を示しています。
if (this.IsPostBack)
{
this.Validate();
if (!this.IsValid)
{
文字列メッセージ = "";
// すべての検証コントロールをループして、どの検証コントロールがどれかを確認します。
// エラーが生成されました。
foreach (this.Validators の IValidator aValidator)
{
if (!aValidator.IsValid)
{
msg += "<br />" + aValidator.ErrorMessage;
}
}
ラベル1.テキスト = メッセージ;
}
}
この記事は CSDN ブログからのものです。転載する場合は出典を明記してください: http://blog.csdn.net/dodream/archive/2009/12/17/5024643.aspx
-