PROGRAM VISUALBASIC

ASP.NET(VB.NET) MVCモデル入門~二つの入力項目が同じ値かを確認する

二つの入力項目が同じ値かどうかを確認する方法

今回は、前回のプログラムに、メールアドレスと確認用メールアドレスの二つの入力項目を作成して、その二つの項目に同じ値が入力されたかどうかを確認する処理を追加します。
この処理は、メールアドレスだけでなく、パスワードの入力などにも使われます。
今回使うアノテーションとモデルの検証の詳しい内容は、以下のマイクロソフト公式サイトを参照してください。

ViewModelにアノテーションのCompare属性を設定

まず、ViewModelに新しくメールアドレスと確認用メールアドレスのプロパティを追加します。
追加した二つのプロパティに、アノテーションのCompare属性を設定します。
<Compare()>の引数には、比較対象のプロパティを指定します。
また、MailAddressプロパティには、<EmailAddress()>というアノテーションを設定していますが、これは画面にメールアドレスを表示する際に、メーラーに対するリンクを貼ってくれます。
今回の<Compare()>では、デフォルトのエラーメッセージを表示させていますが、ErrorMessageプロパティを使ってエラーメッセージを変更することもできます。

<Compare("比較するプロパティ", ErrorMessage:="エラーメッセージ")>

ビューにメールアドレスと確認用メールアドレスの入力項目を追加する

Input.vbhtmlにメールアドレスと確認用メールアドレスの入力項目を追加します。

メールアドレスで使うHtml.TextBoxFor()メソッドの引数に、typeの型としてemailを指定します。
これは、入力した内容がメールアドレスかどうかをチェックします。
メールアドレスでなければ、以下のようのメッセージが表示されます。

vbmvc9-1

入力した値が違う場合のエラーメッセージ

プログラムを実行して、入力したメールアドレスと確認用のメールアドレスの値が違っていた場合は、デフォルトで以下のようなエラーメッセージが表示されます。

vbmvc9-2
実行結果

入力内容に問題がなければ、入力値が画面に表示されます。
メールアドレスには、以下のようにメーラーに対するリンクが貼られます。

<a href="mailto:yamada@aaa.co.jp">yamada@aaa.co.jp</a>

vbmvc9-3
実行結果

-PROGRAM, VISUALBASIC
-, , ,