在Hanselman / Guthrie编写的专业MVC一书中,他们展示了如何使用内置辅助方法和数据分析来验证表单。这有效,但需要很多手动样板代码。
是否有一种新的/更简单的方法来使用一些内置的管道来验证输入?
我正在使用具有实体框架的存储库模式。
谢谢!
答案 0 :(得分:0)
正如其他人在评论中提到的那样,使用数据注释是一种新的/简单的验证方法。使用数据注释的好处是,您可以随时随地在应用程序中验证模型。我通常设置一个通用服务,如下所示:
public class ValidationService<T> : IValidationService<T>
{
public List<ValidationResult> Validate(T obj)
{
var results = new List<ValidationResult>();
Validator.TryValidateObject(
obj,
new ValidationContext(obj, null, null),
results,
true);
return results;
}
}
然后验证模型:
var service = new ValidationsService<MyClass>();
var errors = service.Validate(myobject);
考虑到您为这么少的代码获得了多少功能,数据注释非常强大,特别是当您考虑编写自己的验证属性是多么容易。
答案 1 :(得分:0)
如果您打算使用ViewModel,我会高度推荐使用来自souceforge的AutoMapper
我同意所有人的看法DataAnnotation很棒 - 它能够与jQuery集成以提供客户端验证,而无需编写一行jQuery就可以在一秒钟内将它卖给我!