我一直试图弄清楚这一点,但没有运气。我有一个具有两个属性的模型:Password
和ConfirmPassword
.
如果我在视图中将它们显示为 TextBoxes ( Html.TextBoxFor(...)
),则验证工作正常。但是,如果我将这些显示为密码字段 ( Html.PasswordFor(...)
),那么在提交表单之前验证将不起作用。
下面是我的视图和模型的代码。请注意,该视图只是一个测试视图,我没有在其上放置提交按钮。模型:
public class TestViewModel
{
[Required(ErrorMessage = "Password is required")]
[StringLength(40, ErrorMessageResourceType = typeof(Resources.Shared_Editor_SecurityDetails), ErrorMessageResourceName = "PasswordLength")]
public string Password { get; set; }
[Required(ErrorMessage = "Confirm is required")]
[Compare("Password", ErrorMessage = "Must be the same as Password")]
public string ConfirmPassword { get; set; }
}
看法:
@using (Html.BeginForm())
{
<div>
@Html.LabelFor(m => m.Password)
@Html.PasswordFor(m => m.Password)
@Html.ValidationMessageFor(m => m.Password)
</div>
<div>
@Html.LabelFor(m => m.ConfirmPassword)
@Html.PasswordFor(m => m.ConfirmPassword)
@Html.ValidationMessageFor(m => m.ConfirmPassword)
</div>
}
如果有人能够提供帮助,那将不胜感激。
非常感谢!