小编JLe*_*JLe的帖子

自定义ErrorMessage for Compare属性不起作用

重现步骤:

  1. 使用个人用户帐户创建新的MVC 5项目.
  2. 查看属性中ErrorMessage指定RegisterViewModel的内容ConfirmPassword.它是"密码和确认密码不匹配.".
  3. 构建并运行应用程序,并尝试使用不匹配的密码进行注册.我将错误消息"'确认密码'和'密码'不匹配.",而不是模型中指定的那个.

看起来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; }
Run Code Online (Sandbox Code Playgroud)

预期的结果将是(但这不是我得到的):

自定义ErrorMessage的预期结果

相反,我得到这个"默认"错误消息:

标准ErrorMessage的实际结果

客户端验证已禁用.我错过了什么吗?此示例取自MVC 5模板,其中个人用户帐户作为身份验证.

c# asp.net-mvc asp.net-mvc-5 compare-attribute

19
推荐指数
3
解决办法
1万
查看次数