0
A
回答
1
您必须扩展System.ComponentModel.DataAnnotations.ValidationAttribute
K.斯科特·艾伦(的OdeToCode)有他在那里建立了一个自定义的“大于”属性一个很好的例子。
这里是片段包含内嵌虽然:
public class GreaterThanAttribute : ValidationAttribute
{
public GreaterThanAttribute(string otherProperty)
:base("{0} must be greater than {1}")
{
OtherProperty = otherProperty;
}
public string OtherProperty { get; set; }
public override string FormatErrorMessage(string name)
{
return string.Format(ErrorMessageString, name, OtherProperty);
}
protected override ValidationResult
IsValid(object firstValue, ValidationContext validationContext)
{
var firstComparable = firstValue as IComparable;
var secondComparable = GetSecondComparable(validationContext);
if (firstComparable != null && secondComparable != null)
{
if (firstComparable.CompareTo(secondComparable) < 1)
{
return new ValidationResult(
FormatErrorMessage(validationContext.DisplayName));
}
}
return ValidationResult.Success;
}
protected IComparable GetSecondComparable(
ValidationContext validationContext)
{
var propertyInfo = validationContext
.ObjectType
.GetProperty(OtherProperty);
if (propertyInfo != null)
{
var secondValue = propertyInfo.GetValue(
validationContext.ObjectInstance, null);
return secondValue as IComparable;
}
return null;
}
}
相关问题
- 1. 创建自定义注释
- 2. 如何在iphone中创建自定义注释和标注
- 3. 使用元数据的自定义数据注释属性
- 4. 在MVC中创建自定义数据注释验证3
- 5. xml中的数据注释和自定义属性
- 6. 自定义注释属性从数据库中存储的URL
- 7. 如何在iPhone中的地图中创建自定义注释?
- 8. 如何创建自定义属性?
- 9. 如何在java中创建自定义注释?
- 10. 如何在JAVA中使用逻辑创建自定义注释
- 11. 自定义ASP.NET MVC的数据注释属性
- 12. 本地化数据注释自定义验证属性
- 13. 未验证自定义数据注释属性
- 14. 自定义数据注解属性
- 15. 在Sailsjs中创建自定义属性
- 16. 在导航属性中定义数据注释
- 17. Symfony2&Doctrine2:创建自定义注释
- 18. 如何传递数据注释属性的自定义错误消息
- 19. 如何仅序列化带有自定义注释注释的属性
- 20. Spring自定义注释:如何继承属性?
- 21. 如何验证自定义注释属性?
- 22. 如何在iPhone中创建自定义注释和标注泡泡?
- 23. 如何创建自定义注释,如BeanProperty
- 24. 如何在DataFormWebPart中创建自定义属性
- 25. 如何在MovieClip中创建自定义属性/方法? (AS3)
- 26. 如何在JavaScript中为自定义对象创建属性?
- 27. 如何在apacheds中创建自定义属性?
- 28. 如何在theos/logo中创建自定义属性?
- 29. 如何在Access中使用VBA创建自定义属性
- 30. 如何在用户控件中创建自定义属性?