在ASP.NET验证中,在服务层上使用Data Annotation有什么好处?

时间:2011-02-11 08:55:47

标签: c# asp.net asp.net-mvc-2

我正在考虑在我的网络应用中添加验证功能。某些模型的有效性取决于应用程序中其他模型的状态。

在服务层上使用数据注释框架有什么好处?在我看来,服务实现会更容易,但我理解验证接近数据的好处。

谢谢!

1 个答案:

答案 0 :(得分:2)

使用.NET 4.0的MVC 3 / MVC 2

听起来你想使用IValidatableObject,Scott Gu写了一篇关于此事的blog post

如果我有一个Entity Framework模型并且我想在我的对象中添加自定义验证,那么我正常做什么我会像这样做一个部分类:

public partial class MyObjectModel : IValidatableObject
{
    public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
    {
        if (someNumberProperty > anotherNumberProperty) 
            yield return new ValidationResult(
                    "someNumber property is larger than anotherNumberProperty", 
                                              new[] { "someNumberProperty" });
        if (someNumberProperty == 0) 
            yield return new ValidationResult("someNumber property cannot be 0", 
                                                new[] { "someNumberProperty" });

    }
}

MVC 2

以下是Scott Gu关于如何实现model validation的另一篇文章,但您可能希望查看Custom Validation