1

在我的 Web 应用程序中,我有以下层:

  • 用户界面
    • 控制器、视图模型、视图
  • BLL
    • 服务
  • 达尔
    • 存储库
  • 楷模

在我的 UI 层中,我使用 ViewModels 上的 DataAnnotations 来验证输入。控制器与服务通信以使用它来做一些事情,比如注册一个新用户。我的问题是:我是否应该在服务中验证 DataAnnotations 已经在 ViewModel 上执行的相同操作,例如用户名、密码和电子邮件验证?

4

3 回答 3

3

如果此服务层打算在您的 ASP.NET MVC 应用程序之外重用,那么您应该进行验证。如果不是,那么可能没有必要进行相同的验证。在您的服务层上,您应该验证业务需求,例如指定的用户名已经存在,或者您不能将 3000 美元汇入账户 X,因为您当前账户中只有 2000 美元

于 2013-02-24T18:34:54.333 回答
0

如果要在其他地方使用,再次在您的服务层中再次验证可以帮助“未来证明”您的应用程序,例如向您的应用程序添加 Web 服务。

于 2013-02-24T18:35:51.327 回答
0

您应该始终验证进入您的服务的所有数据。UI 层可能会执行相同的验证(甚至共享代码来执行此操作)。

请注意,某些验证(即“电子邮件是真实的”、“用户创建成功”)只能在服务上执行。

于 2013-02-24T18:36:14.077 回答