我正在考虑在我的网络应用中添加验证功能。某些模型的有效性取决于应用程序中其他模型的状态。
在服务层上使用数据注释框架有什么好处?在我看来,服务实现会更容易,但我理解验证接近数据的好处。
谢谢!
答案 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
。