我应该在表单上还是在类集方法中执行输入验证?

时间:2017-04-01 14:42:14

标签: c# validation class input

假设我有一个存储客户信息的数据库,并且有一个应用程序有多种形式来注册客户,编辑客户,删除客户等...

是否应将输入验证(例如,检查客户的邮政编码格式正确)放在Customer类中或在表单上完成?目前我在课堂上有它,如果值的格式不正确,我会抛出一个自定义异常。

4 个答案:

答案 0 :(得分:2)

有两种验证案例:

  1. 必需
  2. 几乎需要
  3. 必需

    您在课程/后端进行的验证是您无法忽略的验证。如果这样做,这可能会使您的数据处于heywired状态。所以必须这样做!

    几乎需要

    UI中的验证不是必需的,但几乎总是质量应用程序的一部分。我们为用户构建应用程序,因此UX(用户体验)至关重要。 UI中的验证为用户提供即时反馈并缩短校正周期。随着形式的增长,这一点变得更加重要。

    希望有所帮助。

答案 1 :(得分:0)

我不知道您正在使用哪个框架,但将表单验证放在Handels表中的类中是有意义的。这是我目前正在使用https://book.cakephp.org/2.0/en/models/data-validation.html的框架。这可能会有所帮助。

答案 2 :(得分:0)

这取决于你app的架构。 如果您希望您的应用程序具有可扩展性和模块化,我建议您重新考虑MVC模式(模型,视图,控制器)。 在这种情况下,模型是:客户类(仅存储客户的数据) 视图是:表格 你应该控制数据:检查输入,在db等中存储数据..(业务逻辑)在一个名为例如CustomerController的类中。 MVC Model

答案 3 :(得分:0)

恕我直言,你应该在两个地方都这样做。像必需字段这样的东西是UI验证的好例子,框架支持开箱即用。

但这并不意味着您的业务层不应该仍然检查是否存在所需的值,特别是如果您有可以在没有UI层的情况下调用的api。此外,业务层还必须验证更复杂的情况,如现有用户名等。