4

MVC 3 を使用してユーザー登録ページを作成しようとしています。これにより、それがどのように機能するか、舞台裏で何が起こっているかなどのプロセスをよりよく理解できるようになります[Compare]。ユーザーが同じパスワードを 2 回入力しました。

最初にユーザー モデルにフィールドを追加しようComparePasswordとしましたが、データベースにフィールドがなかったため、思いどおりに動作しないことがわかりました。そのため、ComparePasswordフィールドを含む同じ情報を使用してビュー モデルを作成することが明白な答えでした。

したがって、Userモデルとを作成しましたRegistrationViewModel[Compare]、パスワードの は何も返していないようです。たとえば、2 つのボックスに何を入力しても、[作成] をクリックしてもエラーは発生しません。正常に検証されました。

これを適切に機能させるために何をしているのか、何をしていないのかわかりません。jQuery.Validate古いバージョンで報告されたいくつかのバグがあったため、最新バージョンに更新しようとしましたが、これは私の努力を助けませんでした.

以下は、私が使用しているすべてのコードです。

    public class RegistrationViewModel
    {
        [Required]
        [StringLength(15, MinimumLength = 3)]
        [Display(Name = "User Name")]
        [RegularExpression(@"(\S)+", ErrorMessage = " White Space is not allowed in User Names")]
        [ScaffoldColumn(false)]
        public String Username { get; set; }

        [Required]
        [StringLength(15, MinimumLength = 3)]
        [Display(Name = "First Name")]
        public String firstName { get; set; }

        [Required]
        [StringLength(15, MinimumLength = 3)]
        [Display(Name = "Last Name")]
        public String lastName { get; set; }

        [Required]
        [Display(Name = "Email")]
        public String email { get; set; }

        [Required]
        [Display(Name = "Password")]
        [DataType(DataType.Password)]
        public String password { get; set; }

        [Required]
        [DataType(DataType.Password)]
        [Display(Name = "Re-enter Password")]
        [Compare("Password", ErrorMessage = "Passwords do not match.")]
        public String comparePassword { get; set; }
    }
4

1 に答える 1

5

CompareAttribute は大文字と小文字を区別しますか? 属性で「パスワード」を参照していますが、プロパティは「パスワード」として宣言されています。

于 2012-08-28T15:36:53.227 に答える