簡體   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