Использование аннотаций данных в проекте веб-форм - PullRequest
3 голосов
/ 19 марта 2012

Когда я использую модель компонента атрибуты аннотации данных вне контекста каркаса MVC (внутри проекта веб-сайта веб-форм), могу ли я затем запустить встроенный процесс для проверки аннотированных данных и получения результатов ?

Интерфейс IValidatableObject обеспечивает механизм проверки, но мне все еще требуется подключить этот процесс для извлечения ValidationResult s. Это то, что я ищу.

1 Ответ

1 голос
/ 19 марта 2012

Я придумал следующий рабочий пример, чтобы проверить аннотации внутри моего проекта веб-сайта.

Если кто-нибудь знает лучший способ, пожалуйста, не стесняйтесь поделиться своим ответом тоже.

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;


// This method is on the same class that has been annotated with data attributes.
// That's why the validation logic references 'this'.
// 
public override void Validate()
{
    ValidationContext context = new ValidationContext(this, null, null);
    List<ValidationResult> results = new List<ValidationResult>();
    Validator.TryValidateObject(this, context, results, true);
    if (results.Any()) // do whatever you want with the results.
        throw new Exception("validation failed");

}
...