Validation StringLength属性、客户端验证和成员资格提供程序

Validation StringLength属性、客户端验证和成员资格提供程序,validation,asp.net-mvc-3,membership-provider,Validation,Asp.net Mvc 3,Membership Provider,如何将成员资格提供程序(取自web.config)中的值传递给默认MVC3项目中AccountModels中的验证属性 Membership.MinRequiredPasswordLength 返回从web.config获得的值,Register.cshtml视图使用该值: <p> Passwords are required to be a minimum of @Membership.MinRequiredPasswordLength characters in length.

如何将成员资格提供程序(取自web.config)中的值传递给默认MVC3项目中AccountModels中的验证属性

Membership.MinRequiredPasswordLength
返回从web.config获得的值,Register.cshtml视图使用该值:

<p>
Passwords are required to be a minimum of @Membership.MinRequiredPasswordLength
characters in length.
</p>

那么,如何将值从web.config传递到MinimumLength参数?

您将无法像希望的那样动态指定属性属性。这就是模板硬编码的原因。仍然使用数据注释的解决方法是让视图模型实现IValidatableObject,并让它根据Membership.MinRequiredPasswordLength检查密码。另一个选项是创建一个从ValidationAttribute继承并检查Membership.MinRequiredPasswordLength的属性

大卫·海登有一个


对于客户端,需要在模型或自定义属性上实现IClientValidable。下面是另一个例子。您还需要添加客户端验证功能,并且可以在Razor视图中使用@Membership.MinRequiredPasswordLength来提取值

您将无法像希望的那样动态指定属性属性。这就是模板硬编码的原因。仍然使用数据注释的解决方法是让视图模型实现IValidatableObject,并让它根据Membership.MinRequiredPasswordLength检查密码。另一个选项是创建一个从ValidationAttribute继承并检查Membership.MinRequiredPasswordLength的属性

大卫·海登有一个


对于客户端,需要在模型或自定义属性上实现IClientValidable。下面是另一个例子。您还需要添加客户端验证功能,并且可以在Razor视图中使用@Membership.MinRequiredPasswordLength来提取值

谢谢。我想这将处理服务器端验证。它不会生成带有属性的标签以进行不引人注目的客户端验证,对吗?更新了答案以包含客户端信息。谢谢。这正是我想要的。(除了能够动态分配属性属性之外)谢谢。我想这将处理服务器端验证。它不会生成带有属性的标签以进行不引人注目的客户端验证,对吗?更新了答案以包含客户端信息。谢谢。这正是我想要的。(除了能够动态分配属性属性之外)
[Required]
[StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)]
[DataType(DataType.Password)]
[Display(Name = "New password")]
public string NewPassword { get; set; }