繁体   English   中英

ASP.NET MVC中更改密码的可选验证

[英]Optional Validation for Change Password in ASP.NET MVC

我有以下型号

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个字段都已填写。 ,如果不是,我想使用数据注释显示一些验证错误。

有什么想法吗 ?

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

基本上,您将要覆盖Submit事件并在其中执行自己的验证逻辑。 您的代码将与此类似:

function SubmitToServer() { 
    if ($('#Password').length == 0 || ($('#Password').length > 0 && $('#NewPassword ').length > 1 && $(formId).valid()) {
        $(formId).submit();
    }
}

您可以使用[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)]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM