首先,我对 MVC 相当陌生,但在 MVC3 中有一个现有项目并在使用 MVC4,因此对这两个版本的答案表示赞赏。
在我的 mvc 视图中,我有这一行:
Passwords must be at least @Membership.MinRequiredPasswordLength characters long.
在模型中我有这个:
[Required]
[StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)]
[DataType(DataType.Password)]
[Display(Name = "Password")]
public string Password { get; set; }
(这些是为 MVC 模板项目自动生成的)
我的 web.config MembershipProvider 有这个属性:
minRequiredPasswordLength="8"
这样做的问题是,用户将被告知最小长度为 8,但实际验证为 6。当然,我可以将两者设置为相同的值,但我想知道是否有一种简单的方法来仅使用其中之一或同步两者。
我试过这个:
[StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = Membership.MinRequiredPasswordLength)]
但得到错误'一个属性参数必须是一个常量表达式,......'
我知道编写自定义验证属性的选项,但我想避免这种情况,因为我基本上会编写已经存在的验证逻辑(值的来源除外)
或者,我可以在视图中显示模型的最小长度吗?
我怎么能只有一个地方进行更改?