Hatena::ブログ(Diary)

アジャイルプログラマの日常 このページをアンテナに追加 RSSフィード

2007-08-08

検証コントロール (Validation Control) の Tips

|  検証コントロール (Validation Control) の Tipsを含むブックマーク  検証コントロール (Validation Control) の Tipsのブックマークコメント

RequiredFieldValidator の併用を検討

(Validator の基本的な使い方の説明は省略します。 MSDNGoogle で調べてください。)

RequiredFieldValidator 以外の Validator は、未入力値のチェックを行いません。 (未入力の場合は正常であると判断します。) そのため、フォームに RequiredFieldValidator 以外の Validator を使用した場合、未入力値のチェックが必要ないかを検討し、必要なら RequiredFieldValidator を併用する必要があります。

エラーメッセージには、「どの項目を、どう直せばいいのか」を記述

バリデーション・エラーの場合に表示されるメッセージ (ErrorMessage プロパティ) には、「どの項目を、どう直せばいいのか」を記述します。これによって、間違っている項目と修正方法をユーザが認識しやすくなります。

たとえば、パスワードの再入力欄に設定する ErrorMessage には、「パスワードが正しくありません。」ではなく、「再入力欄に入力されたパスワードが、パスワード欄に入力されたものと食い違っています。同一の文字列を入力してください。」を設定した方が望ましいです。

サーバ側で IsValid を必ず呼び出す

検証コントロールを使うときは、クライアント側での検証だけでなく、サーバ側でも検証に成功したかを判定して処理を行う必要があります。この検証に成功したかを判定するプロパティが IsValid プロパティです。

クライアント側のチェックは、ユーザビリティ向上などのための補助機能として利用します。これは、スクリプト機能が無効なブラウザなどでクライアント側のチェックが行われない場合があるためです。

検証コントロールは、値の単体チェックに使用

基本的に Validator は、各コントロールの単体チェックに使用します。業務的 (複合的) なチェックに使用すると、処理が非常に複雑になり、メンテナンスが困難になります。また、業務ロジック内で複雑なチェックを行う方が、コードがシンプルになりやすいです。