22

我想知道是否有办法在没有 MVC 站点的情况下使用 ASP.Net 的数据注释。

我的例子是我有一个类,一旦创建就需要验证,否则会抛出错误。我喜欢数据注释方法,而不是初始化程序触发的一堆 if 块。

有没有办法让它工作?

我认为它会是这样的:

  • 添加数据注释
  • 在初始化程序中触发一个方法,该方法调用类上的 MVC 验证器

有任何想法吗?我必须承认我没有将 MVC 框架添加到我的项目中,因为我希望我可以只使用数据注释类 System.ComponentModel.DataValidation

4

1 回答 1

31

这是一个例子:

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更强大。

于 2010-06-22T06:07:49.147 回答