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; }
}