每次我开始开发新的 ASP.NET MVC Web 应用程序时,我都不确定是否要使用DataAnnotations
验证。感觉有些不对劲。
例如,假设我有UserService
一个CreateUserModel
从. 为了确保用户始终提供名称,我将模型的属性设置为具有该属性。我现在知道模型活页夹永远不会给我 a除非它有一个名字。Create
AccountController
Name
[Required]
CreateUserModel
我的问题是,要让我UserService
成为系统的可重用组件,它不能依赖于上面的层提供有效数据的事实,而且肯定还必须验证这些数据。当您考虑到您可能想要编写一个完全重用的 Web 服务UserService
(并且不会让模型绑定器为其执行所有数据注释验证)时,对此的需求会进一步突出。
所以我的问题是:这种情况的最佳做法是什么?使用数据注释进行验证并在服务中重复该验证?仅在服务中验证并抛出异常?两者的混合?
我希望我的问题不是太主观,我主要是想就将验证转移到数据注释是否最终会咬我一口达成共识。