重现步骤:
- 使用个人用户帐户创建一个新的 MVC 5 项目。
- 查看
ErrorMessage
指定RegisterViewModel
的ConfirmPassword
属性。它是“密码和确认密码不匹配。”。 - 构建并运行应用程序,并尝试使用不匹配的密码进行注册。我将看到错误消息“'Confirm password' and 'Password' do not match.”,而不是模型中指定的错误消息。
似乎ErrorMessage
该属性的自定义属性Compare
不起作用。即使我指定了 ErrorMessage,验证仍然会显示某种默认消息。
这适用于System.Web.Mvc.CompareAttribute
,但现在已弃用,您应该改用System.ComponentModel.DataAnnotations.CompareAttribute
,这表明了这个问题。
我将Compare
属性添加到属性并指定ErrorMessage
如下:
[Compare("NewPassword", ErrorMessage = "The new password and confirmation password do not match. I'll even add some random text!")]
public string ConfirmPassword { get; set; }
预期的结果是(但这不是我得到的):
相反,我收到此“默认”错误消息:
客户端验证被禁用。我错过了什么吗?此示例取自以个人用户帐户作为身份验证的 MVC 5 模板。