Asp.net mvc 3 验证器在客户端是如何工作的?
我正在开发一个简单的验证器。它可以很好地处理服务器端请求,但由于禁止回发,它在客户端不起作用。Net的Asp.net mvc 3 验证器在客户端是如何工作的?,asp.net-mvc-3,Asp.net Mvc 3,我正在开发一个简单的验证器。它可以很好地处理服务器端请求,但由于禁止回发,它在客户端不起作用。Net的RequiredAttribute验证程序在客户端工作,不需要回发 如何更改我的验证器以使其工作正常 我的验证器得到一个字符串,并检查它是否至少有5个字符长 [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter, AllowMultiple = fals
RequiredAttribute
验证程序在客户端工作,不需要回发
如何更改我的验证器以使其工作正常
我的验证器得到一个字符串,并检查它是否至少有5个字符长
[AttributeUsage(AttributeTargets.Property | AttributeTargets.Field |
AttributeTargets.Parameter, AllowMultiple = false)]
public class MyValidatorAttribute : ValidationAttribute
{
private readonly int _length = 0;
public MyValidatorAttribute(int length)
{
_length = length;
}
protected override ValidationResult IsValid(object value,
ValidationContext validationContext)
{
if (value != null)
{
string data = (string)value;
if (data.Length < _length)
{
return new ValidationResult("length is short");
}
}
return ValidationResult.Success;
}
}
public class MyValidator : DataAnnotationsModelValidator<MyValidatorAttribute>
{
int minlength = 5;
string errorMsg = string.Empty;
public MyValidator(ModelMetadata metadata,
ControllerContext context,
MyValidatorAttribute attribute)
: base(metadata, context, attribute)
{
errorMsg = attribute.ErrorMessage;
}
public override IEnumerable<ModelClientValidationRule>
GetClientValidationRules()
{
ModelClientValidationRule validationRule =
new ModelClientValidationRule();
validationRule.ErrorMessage = errorMsg;
validationRule.ValidationType = "MyValidator";
validationRule.ValidationParameters.Add("minlength", minlength);
return new[] { validationRule };
}
}
[AttributeUsage(AttributeTargets.Property | AttributeTargets.Field |
AttributeTargets.Parameter,AllowMultiple=false)]
公共类MyValidatorAttribute:ValidationAttribute
{
私有只读int _length=0;
公共MyValidator属性(整型长度)
{
_长度=长度;
}
受保护的覆盖验证结果有效(对象值,
ValidationContext(验证上下文)
{
if(值!=null)
{
字符串数据=(字符串)值;
如果(数据长度<_长度)
{
返回新的ValidationResult(“长度较短”);
}
}
返回ValidationResult.Success;
}
}
公共类MyValidator:DataAnnotationsModelValidator
{
int minlength=5;
string errorMsg=string.Empty;
公共MyValidator(模型元数据、,
ControllerContext上下文,
MyValidator属性)
:base(元数据、上下文、属性)
{
errorMsg=attribute.ErrorMessage;
}
公共覆盖IEnumerable
GetClientValidationRules()
{
ModelClientValidationRule validationRule=
新建ModelClientValidationRule();
validationRule.ErrorMessage=errorMsg;
validationRule.ValidationType=“MyValidator”;
validationRule.ValidationParameters.Add(“minlength”,minlength);
返回新的[]{validationRule};
}
}
我冒昧地重新表述了你的问题。请检查这是否是你真正的意思。并不总是很清楚。请看一下: