在MVC之外使用ASP.Net MVC数据注释

问题描述 投票:20回答:1

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

我的示例是,我有一个一旦创建的类就需要进行验证,否则将引发错误。我喜欢数据批注方法,而不喜欢initaliser触发的一堆if块。

是否有办法使它正常工作?

我以为是这样的:

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

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

c# asp.net-mvc data-annotations class-library
1个回答
30
投票

这里是一个例子:

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的功能要强大得多。

© www.soinside.com 2019 - 2024. All rights reserved.