2014-02-13 303 views
9

是否可以將確認密碼文本框的文本與 @Html.PasswordFor(model=>model.Password)比較?在ASP.Net中比較密碼和確認密碼MVC

@using (Html.BeginForm()) 
{ 
    <table> 

     <tr> 
      <td>@Html.LabelFor(model => model.Password)</td> 
      <td>@Html.PasswordFor(model => model.Password)</td> 
      <td>@Html.ValidationMessageFor(model => model.Password)</td> 
     </tr> 
     @*Here I want to take "Confirm Password" and want to compare it with "Password" in View(.cshtml only) as 
      I have not taken ConfirmPassword in my model.*@ 
     <tr> 
      <td> 
       <input type="submit" value="Create" /> 
      </td> 
     </tr> 
    </table>    
} 

請提出這樣或那樣的解決方案,

如何compare passwordconfirm password沒有得到確認模式密碼屬性。謝謝....

回答

1

嘗試寫javascript對於比較密碼...

DataAnnotation優先

+0

雖然這可能足以大幅限制風險,但客戶端驗證不是真正的驗證... –

6

改變你的模式,包括確認密碼變量

[Required] 
public string Password { get; set; } 
[Compare("Password")] 
public string ConfirmPassword { get; set; } 
+0

是否可以將確認密碼文本框的文本與@ Html.PasswordFor(model => model.Password)進行比較? –

8

使用CompareDataAnnotation這將很容易比較密碼,但如果從數據庫使用的模型genrate NotMapped,NotMapped Properties In An Entity Framework Using A Code-First Strategy

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

[NotMapped] // Does not effect with your database 
[Compare("Password")] 
public string ConfirmPassword { get; set; } 
+0

是否可以將確認密碼文本框的文本與@ Html.PasswordFor(model => model.Password)進行比較? –

2

剛纔試了[Compare("field_to_compare")],它也能在MVC 5

5

只需添加[NotMapped]上面您確認密碼財產的數據模型

[NotMapped] 
[Required(ErrorMessage = "Confirm Password required")] 
[CompareAttribute("NewPassword", ErrorMessage = "Password doesn't match.")]   
public string ConfirmPassowrd { get; set; } 

通過這種方式,它不會檢查ConfirmPassword您的數據庫表中的財產