数据类型属性实现

时间:2010-05-06 10:38:06

标签: .net

在我的财产中,我需要一个电子邮件地址验证。但[Datatype(DataType.EmailAddress)]无效。如何纠正同样的问题。

1 个答案:

答案 0 :(得分:0)

虽然您不太清楚需要执行验证的位置,但假设您有类似这样的类:

public class MyClass
{
    [DataType(DataType.EmailAddress)]
    public string EmailAddress { get; set; }
}

在属性设置中不会对EmailAddress属性进行验证。

但是,您可以使用Validator class上的方法触发验证:

// The instance.
var myClass = new MyClass { EmailAddress = "someone@somewhere.com", };

// The context for validation.
var context = new ValidationContext(myClass, null, null);

// Validates the property.
Validator.ValidateValue(myClass.EmailAddress, context, 
    new ValidationAttribute[] { new DataTypeAttribute(DataType.EmailAddress), });

当然,这违背了在类声明中声明属性的目的。您可以像这样验证整个类状态:

// Using same myClass and context declarations:
Validator.ValidateObject(myClass, context);

如果您不想使用try/catch Exception个实例,则可以使用Try*方法的Validate版本。