问题描述
我创建MVC 4定制validateur:
公共类FirstNameValidator:ValidationAttribute
{
私人IRegistrationConfiguration _registrationConfiguration;
公共字符串类别{搞定;组; }
公共BOOL IsLocal {搞定;组; }
公共FirstNameValidator()
{
_registrationConfiguration = DependencyResolver.Current.GetService< IRegistrationConfiguration>();
}
公共FirstNameValidator(IRegistrationConfiguration registrationConfiguration)
{
_registrationConfiguration = registrationConfiguration;
} 保护覆盖的ValidationResult的IsValid(对象的值,ValidationContext validationContext)
{
如果(价值== NULL)
{ 返回新的ValidationResult(乐prénomNE DOIT PAS理由韦迪);
}
其他
{
如果(string.IsNullOrEmpty(value.ToString()))
返回新的ValidationResult(乐prénomNE DOIT PAS理由韦迪);
否则,如果(value.ToString()长度< 2)
返回新的ValidationResult(乐prénomDOIT avoir + 2阙CARACTERES);
否则如果(value.ToString()长度方式> 30)的
返回新的ValidationResult(乐prénomDOIT avoir - 阙30 CARACTERES); } 返回null; }}
我用户在我的ViewModel此数据注解:
公共类RegistrationViewModel
{
公共字符串国家{搞定;组; }
公共字符串文明{搞定;组; }
[FirstNameValidator(分类=注册,IsLocal = FALSE)]
公共字符串名字{获得;组; }
公共字符串名字{获得;组; }
}
我如何能做到客户端验证??
-
在您的属性实现IClientValidatable。
公共类FirstNameValidator:ValidationAttribute,IClientValidatable
-
编写JavaScript适配器,它包括在您的视图。
-
编写JavaScript验证规则本身,包括它在你的看法。
您可以搜索更多的细节asp.net mvc的4定制的客户端验证。
例如,你可以看看<一个href=\"http://odeto$c$c.com/Blogs/scott/archive/2011/02/22/custom-data-annotation-validator-part-ii-client-$c$c.aspx\"相对=nofollow>自定义数据注释验证或<一个href=\"http://hossamhassan47.word$p$pss.com/2012/12/09/mvc-4-0-how-to-support-client-side-custom-validation/\"相对=nofollow>如何支持客户端自定义验证
I create a custom validateur in MVC 4:
public class FirstNameValidator : ValidationAttribute
{
private IRegistrationConfiguration _registrationConfiguration;
public string Category { get; set; }
public bool IsLocal { get; set; }
public FirstNameValidator()
{
_registrationConfiguration = DependencyResolver.Current.GetService<IRegistrationConfiguration>();
}
public FirstNameValidator(IRegistrationConfiguration registrationConfiguration)
{
_registrationConfiguration = registrationConfiguration;
}
protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
if (value == null)
{
return new ValidationResult("Le prénom ne doit pas être vide");
}
else
{
if(string.IsNullOrEmpty(value.ToString()))
return new ValidationResult("Le prénom ne doit pas être vide");
else if(value.ToString().Length<2)
return new ValidationResult("Le prénom doit avoir + que 2 caractères");
else if (value.ToString().Length > 30)
return new ValidationResult("Le prénom doit avoir - que 30 caractères");
}
return null;
}
}
i user this data annotation in my viewModel:
public class RegistrationViewModel
{
public string Country { get; set; }
public string Civility { get; set; }
[FirstNameValidator(Category = "Registration", IsLocal = false)]
public string FirstName { get; set; }
public string LastName { get; set; }
}
How can i do client-side validation ??
Implement IClientValidatable in your attribute.
public class FirstNameValidator : ValidationAttribute, IClientValidatable
Write javascript adapter and include it in your view.
Write javascript validation rule itself and include it in your view.
You can search "asp.net mvc 4 custom client side validation" for more details.For example, you can look Custom data annotation validator or How to support client side custom validation
这篇关于自定义的验证MVC +验证客户端的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!