1

我有以下型号

public AccountInfo {

    // loads of other property here as well.

    public string Password { get; set; }

    public string NewPassword { get; set; }

    [Compare("NewPassword", ErrorMessage = "New Passwords dont match.")]
    public string ConfirmNewPassword { get; set; }

}

我正在使用数据注释来显示客户端验证消息。

现在我正在处理更改用户个人资料详细信息页面。

我需要做的是,连同电子邮件、全名、地址等其他详细信息,我必须显示 3 个字段,即

  • 当前密码
  • 新密码
  • 确认新密码

现在的情况是这些是可选字段,用户可能不会填写它。但是当他这样做时,我想确保所有 3 个字段都已填写。,如果不是,我想使用数据注释显示一些验证错误。

有什么想法吗 ?

4

2 回答 2

1

没有任何内置的数据注释。您可以创建自定义属性来进行验证,但这并不容易。因此,我建议您使用 Jquery Validation / Javascript 来处理这个问题。

基本上你会想要覆盖提交事件并在那里做你自己的验证逻辑。您的代码将与此类似:

function SubmitToServer() { 
    if ($('#Password').length == 0 || ($('#Password').length > 0 && $('#NewPassword ').length > 1 && $(formId).valid()) {
        $(formId).submit();
    }
}
于 2012-12-03T06:59:33.853 回答
0

你可以[Required]用来告诉 RAZOR 这些是必须的或强制性的。

[Required]
public string Password { get; set; }

 [Required]
 public string NewPassword { get; set; }

 [Required]
 [Compare("NewPassword", ErrorMessage = "New Passwords dont match.")]
 public string ConfirmNewPassword { get; set; }

如果你想提供价值范围意味着使用这个 -[Range(1, 100)]

如果你想使用密码长度意味着使用这个 -[StringLength(5)]

于 2012-12-03T06:39:45.330 回答