Использование аннотации данных ASP.Net MVC вне MVC - PullRequest
19 голосов
/ 22 июня 2010

Мне было интересно, есть ли способ использовать аннотацию данных ASP.Net без сайта MVC.

Мой пример - у меня есть класс, который после того, как он был создан, нуждается в проверке или выдаст ошибку,Мне нравится метод аннотаций данных, а не куча блоков if, запускаемых инициализатором.

Есть ли способ заставить это работать?

Я думал, что это будет что-то вроде:

  • Добавить аннотации данных
  • Запустить метод в инициализаторе, который вызывает валидатор MVC для класса

Есть идеи?я должен признать, что не добавил MVC-фреймворк в свой проект, так как надеялся, что смогу просто использовать класс аннотаций данных System.ComponentModel.DataValidation

1 Ответ

29 голосов
/ 22 июня 2010

Вот пример:

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

public class Foo
{
    [Required(ErrorMessage = "the Bar is absolutely required :-)")]
    public string Bar { get; set; }
}

class Program
{
    public static void Main()
    {
        var foo = new Foo();
        var results = new List<ValidationResult>();
        var context = new ValidationContext(foo, null, null);
        if (!Validator.TryValidateObject(foo, context, results))
        {
            foreach (var error in results)
            {
                Console.WriteLine(error.ErrorMessage);
            }
        }
    }
}

Но, если честно, FluentValidation гораздо мощнее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...