验证。在视图中?或服务层?

时间:2016-07-10 18:31:48

标签: c# asp.net-mvc validation

我想弄清楚如何最好地为我的mvc项目进行验证。我想出了两种方法,但不确定哪种方式最好(如果有的话)

  1. 我的mvc控制器(或任何消耗我的服务层)和服务层中的业务逻辑的基本验证。
  2. 在视图中完成验证后,域对象将被传递,然后检查业务逻辑,然后保存到数据库。

    这意味着,如果我重用我的服务层,每个应用程序都必须为相同的东西编写验证(例如"名称"是必需的)。如果他们忘记这样做,那么服务层就会崩溃。

    1. 在服务层完成所有验证。
    2. 这将给出一个valdiation点,并且在保存到db之前始终确保所有数据都是正确的。

      这在我看来产生了很大的开销,尽管我看到了它。我将需要一个viewmodel,然后获取viewmodel并将其传输到数据传输对象,让它进入服务层并验证它。

      如果有效,则将其映射到域对象并保存。

2 个答案:

答案 0 :(得分:1)

所有验证都应在后端实施,因为您无法控制最终用户浏览器上发生的情况。验证最重要的目标是保护系统的完整性。

由于您在视图中执行的任何验证都是重复的,因此只实施可以增强用户体验的验证(例如,响应式设计,减少对服务器的调用等)。

答案 1 :(得分:0)

验证在View中只有麻烦制造者。因为基于java脚本,专业用户检查并删除一些javascript代码。我在前端和后端验证我的项目。