C# PROGRAM

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

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

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

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

まず、ViewModel に新しくメールアドレスと確認用メールアドレスのプロパティーを追加します。
追加した二つのプロパティーに、アノテーションの Compare属性を設定します。
[Compare()] の引数には、比較対象のプロパティーを指定します。
ErrorMessageプロパティーに何も設定しない場合は、デフォルトで「'プロパティー名' and '比較対象プロパティー名' do not match.」というメッセージを表示します。

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

また、EmailAddress属性を設定すると、入力された内容がメールアドレスかどうかをチェックし、表示画面のメールアドレスに、メーラーに対するリンクを貼ってくれます。
ErrorMessageプロパティーに何も設定しなければ、デフォルトで「The プロパティー名 field is not a valid e-mail address.」というメッセージを表示します。

[EmailAddress(ErrorMessage = "エラーメッセージ")]

EmailAddressアノテーションの詳しい内容は、以下のマイクロソフト公式サイトを参照してください。

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

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

メールアドレス以外の場合のエラーメッセージ

入力した値がメールアドレス以外の場合は、ViewModel で設定したエラーメッセージを表示します。

cs-mvc-8-1

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

入力したメールアドレスと確認用メールアドレスが違っていた場合は、ViewModel で設定したエラーメッセージを表示します。

cs-mvc-8-2

Incexビューにメールアドレスを追加する

メールアドレスが表示されるように、Index.cshtml に項目を追加します。

メールアドレスにリンクが貼られる

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

cs-mvc-8-3

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

-C#, PROGRAM
-,