在我的财产中,我需要一个电子邮件地址验证。但[Datatype(DataType.EmailAddress)]
无效。如何纠正同样的问题。
答案 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
版本。