3

我有一个类用于在 MVC 中对我的数据进行建模。我添加了一些 DataAnotations 来标记必填字段,并且我正在使用正则表达式来检查有效的电子邮件地址。如果对象被回发到 MVC 并且我有 ModelState 属性,我可以检查以确认该类是否有效,但我如何使用相同的类和数据注释检查该类在 MVC 之外是否有效我已经设置了?

4

2 回答 2

2

这是我过去在数据注释中使用的一种方法,用于获取注释对象上的所有错误(它可以使用一些改进,但这是一个很好的起点:

public static IEnumerable<ErrorInfo> GetErrors(object instance)    
{
   return from prop in TypeDescriptor.GetProperties(instance).Cast<PropertyDescriptor>() 
      from attribute in prop.Attributes.OfType<ValidationAttribute>()
      where !attribute.IsValid(prop.GetValue(instance))
      select new ErrorInfo(prop.Name, attribute.FormatErrorMessage(String.Empty), instance);    
}
于 2009-12-04T15:43:33.727 回答
0

.NET 3.5 中似乎没有内置任何东西。但是,如果您可以针对 .NET 4 进行开发,那么有一个 Validator 类可以提供您需要的内容:

MSDN 上的验证器类

于 2010-03-25T18:32:49.883 回答