重现步骤:
RegisterViewModel
中为ConfirmPassword
属性指定的ErrorMessage
。它是“密码和确认密码不匹配。”。Compare
属性上的自定义ErrorMessage
属性似乎不起作用。即使我指定了一个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; }
预期的结果将是(,但这不是我得到的):
相反,我得到了这个“默认”的错误消息:
客户端验证已禁用。我是不是遗漏了什么?此示例取自MVC5模板,使用单个用户帐户作为身份验证。
发布于 2013-11-16 03:19:08
我想这是个bug。(编辑:它是。)我也能重现这个。实际上,开启客户端验证的行为是完全相同的。如果您查看一下生成的HTML,您会发现它甚至没有生成自定义的错误字符串-它总是发出默认的错误字符串。
实际上,我刚刚搜索了一下,想找到更多的信息,我发现它已经在codeplex上作为一个bug提交了。这是8天前报告的,已经有人被指派了。您可以找到错误报告here。
发布于 2013-11-16 00:11:46
我也有同样的问题和解决方案:
更改:
[Compare("Password", ErrorMessage = "The password and confirmation password do not match.")]
至:
[System.Web.Mvc.Compare("Password", ErrorMessage = "The password and confirmation password do not match.")]
起作用了!
发布于 2014-05-11 20:14:44
这是一部2013年的old bug。尝试使用以下命令更新所有project's dependencies
PM> update-package
https://stackoverflow.com/questions/19978239
复制相似问题