再現する手順:
- 個々のユーザー アカウントで新しい MVC 5 プロジェクトを作成します。
ErrorMessage
指定さRegisterViewModel
れたConfirmPassword
プロパティを参照してください。「パスワードと確認用パスワードが一致しません。」です。- アプリケーションをビルドして実行し、一致しないパスワードで登録を試みます。モデルで指定されたものではなく、「'パスワードの確認' と 'パスワード' が一致しません。」というエラー メッセージが表示されます。
属性のカスタムErrorMessage
プロパティが機能してCompare
いないようです。ErrorMessage を指定しても、検証では代わりに何らかのデフォルト メッセージが表示されます。
これSystem.Web.Mvc.CompareAttribute
は で動作しますが、現在は非推奨であり、代わりに を使用する必要がありますSystem.ComponentModel.DataAnnotations.CompareAttribute
。これはこの問題を示しています。
Compare
プロパティに属性を追加し、次のように指定ErrorMessage
します。
[Compare("NewPassword", ErrorMessage = "The new password and confirmation password do not match. I'll even add some random text!")]
public string ConfirmPassword { get; set; }
期待される結果は次のようになります (ただし、これは私が得たものではありません):
代わりに、次の「デフォルト」のエラー メッセージが表示されます。
クライアント側の検証は無効になっています。何か不足していますか?この例は、個別のユーザー アカウントを認証として使用する MVC 5 テンプレートから取得したものです。