是否可以将确认密码文本框的文本与。进行比较
@Html.PasswordFor(model=>model.Password)
?
@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 password
和confirm password
。感谢....
答案 0 :(得分:20)
使用Compare
DataAnnotation
可以很容易地比较密码,但如果使用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; }
答案 1 :(得分:9)
更改您的模型以包含确认密码变量
[Required]
public string Password { get; set; }
[Compare("Password")]
public string ConfirmPassword { get; set; }
答案 2 :(得分:6)
只需将[NotMapped]
添加到数据模型
[NotMapped]
[Required(ErrorMessage = "Confirm Password required")]
[CompareAttribute("NewPassword", ErrorMessage = "Password doesn't match.")]
public string ConfirmPassowrd { get; set; }
通过这种方式,它不会检查数据库表中的ConfirmPassword
属性
答案 3 :(得分:3)
刚试过[Compare("field_to_compare")]
,它也适用于MVC 5.
答案 4 :(得分:1)
尝试为此编写javascript
来比较密码...
但DataAnnotation
是首选
答案 5 :(得分:0)
可以在客户端和服务器端都将“密码”文本框值与“确认密码”文本框值进行比较。其他人提供的解决方案用于在服务器端进行确认。如果您不想在模型中包括“确认密码”,则必须比较客户端。这可以通过Javascript完成。您可以手动编写代码进行比较,也可以在.cshtml文件中包含以下脚本。 (假设您正在使用Visual Studio编写代码)。
<script src="/Scripts/jquery-3.3.1.js"></script>
<script src="/Scripts/jquery.validate.js"></script>
<script src="/Scripts/jquery.validate.unobtrusive.js"></script>
然后您应该创建一个如下所示的字段:
<input data-val="true" data-val-equalto="Password and Confirmation Password must match." data-val-equalto-other="*.Password" data-val-required="Required." id="ConfirmPassword" name ="ConfirmPassword" type="password" />
<span class="field-validation-valid error" data-valmsg-for="ConfirmPassword" data-valmsg-replace="true"></span>
这会将您的“密码”文本框与“确认密码”文本框进行比较,并且如果两个文本框中的值都不匹配,并且无需编写任何其他代码,还会显示一条错误消息。
尽管,好的做法是同时进行客户端和服务器端验证。