パスワードが入力されている場合、編集時にパスワードの長さを検証したいと思います。それ以外の場合は、空でも問題ないと見なされます。
編集モデルでパスワードの属性をスキップし、コードで検証を行うという提案を見てきましたが、すべての検証に属性を使用したいと考えています。
ライブラリにはすでにこのようなものがあるはずです。私は単にそれを逃したのですか?
AspNet 3.5 で EntLib 5 VAB と MVC 2 を使用しています。
バニラ編集モデル:
[PropertiesMustMatch("Password", "ConfirmPassword", ErrorMessage = "The password and confirmation password do not match.")]
public class EditAccountModel
{
public Guid ProviderUserKey { get; set; }
[Required]
[DisplayName("User name")]
public string UserName { get; set; }
[Required]
[Email(ErrorMessage = "Not a valid email")]
[DataType(DataType.EmailAddress)]
[DisplayName("Email address")]
public string Email { get; set; }
//[ValidatePasswordLength] <- Requires password
[DataType(DataType.Password)]
[DisplayName("Password")]
public string Password { get; set; }
[DataType(DataType.Password)]
[DisplayName("Confirm password")]
public string ConfirmPassword { get; set; }
}