【发布时间】:2011-02-22 08:01:35
【问题描述】:
我目前正在开发一个 ASP.NET MVC2 项目。这是我第一次开发真正的 MVC Web 应用程序。 ASP.NET MVC website 确实帮助我快速入门,但我仍然对数据模型验证有一些晦涩的了解。
我的问题是,当涉及到复杂的验证规则时,我真的不知道在哪里管理我的填充数据模型。例如,使用 Regex 验证字符串字段非常容易,而且我知道我只需要用特定属性装饰我的字段,因此在模型中实现了数据管理规则。但是,如果我有多个需要相互验证的字段,例如需要按照特定时间规则正确设置的多个日期时间,我需要在哪里验证它们?我知道我可以创建自己的验证属性,但有时验证会询问一个特定的验证路径,该路径很复杂,无法使用属性进行验证。
第一个问题也让我想到了一个相关的问题,即在控制器中验证模型是否正确?因为目前这是我找到进行复杂验证的唯一方法。但我觉得这有点脏,而且我觉得它不适合控制器角色并且更难测试(多代码路径)。
谢谢。
注意:我在这里得到了一些非常好的解决方案,但我正在等待其他想法和一些“最佳实践”解决方案。
【问题讨论】:
-
我也在问自己同样的问题。尝试尽可能“干燥”,我应该如何处理简单的验证(必需、格式等)?我应该使用 DataAnnotation 在视图中强制执行它并在我的业务层中重做相同的验证(加上更复杂的验证)吗?
标签: asp.net asp.net-mvc validation data-management