我有一个表单,其中包含两个需要相等的字段(密码和密码确认)。我创建了一个类属性来检查它,并且在服务器端它工作得很好。在客户端,它什么也不做。我需要消息出现在 ValidationSummary 中(“重复密码”需要与“密码”相同)。
我意识到检查这些字段的最简单方法是将规则手动添加到 window.mvcClientValidationMetadata。我试图这样做,但没有任何效果。
我的代码:
<% using (Html.BeginForm("ResetPassword", "Account", FormMethod.Post}))
{ %>
<%= Html.ValidationSummary() %>
<div>
<%= Html.ValidationMessageFor(m => m.Email)%>
<%= Html.LabelFor(m => m.Email)%>
</div>
<div>
<%= Html.TextBoxFor(m => m.Email)%>
<% Html.ValidateFor(m => m.Email);%>
</div>
<div>
<%= Html.ValidationMessageFor(m => m.PasswordModel.Password)%>
<%= Html.LabelFor(m => m.PasswordModel.Password)%>
</div>
<div>
<%= Html.PasswordFor(m => m.PasswordModel.Password)%>
</div>
<div>
<%= Html.ValidationMessageFor(m => m.PasswordModel.PasswordRepeated)%>
<%= Html.LabelFor(m => m.PasswordModel.PasswordRepeated)%>
</div>
<div>
<%= Html.PasswordFor(m => m.PasswordModel.PasswordRepeated)%>
</div>
<div>
<%= Html.ValidationMessageFor(m => m.PasswordModel.PasswordRepeated)%>
<%= Html.LabelFor(m => m.PasswordModel.PasswordRepeated, true)%>
</div>
<% } %>
Html.EnableClientValidation
方法在生成此表单之前执行。
下面你会找到我的问题的解决方案。