0

我正在构建一个 MVC4 应用程序,并且正在使用 PropertiesMustMatch 和 ValidatePasswordLength 进行密码验证。

奇怪的是我不断收到错误消息说它们不存在,“无法解析 PropertiesMustMatch”

这是我的代码。有任何想法吗??

 [PropertiesMustMatch("Password", "ConfirmPassword",
    ErrorMessageResourceName = "PasswordsMustMatch",
    ErrorMessageResourceType = typeof(ValidationStrings))]
    public class RegisterModel
    {
        [Required(ErrorMessageResourceName = "Required", ErrorMessageResourceType = typeof(ValidationStrings))]
        [DisplayName("Username")]
        public string UserName { get; set; }

        [Required(ErrorMessageResourceName = "Required",
        ErrorMessageResourceType = typeof(ValidationStrings))]
        [DataType(DataType.EmailAddress)]
        [DisplayName("Email")]
        public string Email { get; set; }

        [Required(ErrorMessageResourceName = "Required", ErrorMessageResourceType = typeof(ValidationStrings))]
        [ValidatePasswordLength(ErrorMessageResourceName = "PasswordMinLength", ErrorMessageResourceType = typeof(ValidationStrings))]
        [DataType(DataType.Password)]
        [DisplayName("Password")]
        public string Password { get; set; }

        [Required(ErrorMessageResourceName = "Required",
        ErrorMessageResourceType = typeof(ValidationStrings))]
        [DataType(DataType.Password)]
        [DisplayName("Confirm password")]
        public string ConfirmPassword { get; set; }
    }
4

2 回答 2

0

首先检查您是否有 System.ComponentModel.DataAnnotations 程序集的参考:

using System.ComponentModel.DataAnnotations;

然后(如果您已经拥有它但它仍然无法工作),创建一个新的 MVC 项目并在它拥有的数据注释中查找它们。我很确定他们在那里。

于 2013-09-04T20:17:15.150 回答
0

为什么你使用旧技术?!

而不是 PropertiesMustMatch 在 ConfirmPassword 属性上使用 Compare 属性,StringLength 或 RegularExpression 属性将帮助您检查密码长度

顺便说一句,如果您必须使用这些属性,请查看这些文章

MSDN 上的博文

您必须将(旧版本)引用添加到您的项目

于 2013-09-04T20:41:57.390 回答