2009-10-30 4 views
3

ASP.NET MVC 2 будет поддерживать проверку на основе DataAnnotation атрибуты, как это:.NET: DataAnnotation атрибуты в общем

public class User 
{ 
    [Required] 
    [StringLength(200)] 
    public string Name { get; set; } 
} 

Как я могу проверить, что текущее состояние модели действует с использованием только чистый. NET (не используя привязку MVC, методы контроллера и т. Д.)?

В идеале, было бы один метод:

bool IsValid(object model); 

ответ

7

Этот пример кода от Steve Сандерсон blog о xVal (который использует DataAnnotationsAttribute для проверки свойств). В принципе, вам просто нужно перечислить attitutes с помощью отражения и проверить IsValid():.

internal static class DataAnnotationsValidationRunner 
{ 
    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); 
    } 
} 
+0

В основном я сделал свою собственную проверку, так же как атрибуты проверки данных работают над проектом MVC, и в основном я сделал то же самое. – Min

Смежные вопросы