如何将新的validation规则添加到mvcClientValidationMetadata?

我有一个表格,有两个字段需要相同(密码和密码确认)。 我创建了一个类属性来检查它,在服务器端它运行良好。 在客户端它什么都不做。 我需要在ValidationSummary中显示该消息(“密码重复”需要与“密码”相同)。

我意识到检查这些字段的最简单方法是手动将规则添加到window.mvcClientValidationMetadata。 我试图这样做,但没有任何效果。

我的代码:

  
m.Email)%> m.Email)%>
m.Email)%> m.Email);%>
m.PasswordModel.Password)%> m.PasswordModel.Password)%>
m.PasswordModel.Password)%>
m.PasswordModel.PasswordRepeated)%> m.PasswordModel.PasswordRepeated)%>
m.PasswordModel.PasswordRepeated)%>
m.PasswordModel.PasswordRepeated)%> m.PasswordModel.PasswordRepeated, true)%>

在生成此表单之前执行Html.EnableClientValidation方法。

下面你会找到我的问题的解决方案。

你可能做的最糟糕的事情是执行相同的代码 – 你将覆盖现有的规则。

要添加validation规则,您需要在<% } %>关闭后using(...的BeginForm:…)

 <% } %>  

propertiesMustMatch函数检查给定的字段是否相等(jQuery equalTo在我们的系统中无法正常工作)。

没有“Uncaught TypeError:无法调用方法’推送’未定义”exception,因为mvcClientValidationMetadata是在元素中生成的,其中<% } %>是。