我应该在哪里进行数据验证

时间:2013-12-10 01:42:31

标签: validation model-view-controller

我的表格类似于"联系人"应用程序。用户填写一个表单,将信息保存在名为Person的对象中。

我想验证该信息,并在出现错误的地方以红色显示消息。我不知道的是验证数据的位置

当用户按下保存按钮时,我正在考虑直接在视图控制器中执行此操作,但我不确定它是否符合MVC原则。我也使用setter直接在对象类中执行它,如果数据无效则返回错误消息

2 个答案:

答案 0 :(得分:1)

这也取决于技术。但是如果我们坚持这个概念,你应该考虑MVC的目的,即解耦View,Controller和Model。

如果它真的解耦了你可能最终会有不同的技术实现你的应用程序的视图,但使用相同的模型(取决于模型的暴露方式)。

所以你必须考虑你的约束条件,你应该考虑在模型附近验证它作为后端的保护,但是在客户端(靠近视图)上执行一些验证是一个有趣的想法来改进应用程序性能和减少网络(我假设它是一个联网应用程序)的使用。

因此,在模型附近使用验证(比如为它使用一个层,或者在其中)总是为了提高代码的可重用性/自治性。并在视图上使用验证来提高应用程序吞吐量,但要记住它必须在所有视图(例如android,ios和web)上实现,这可能会导致验证逻辑重复,这很糟糕。

答案 1 :(得分:1)

最好是在模型中保留计算/验证/解析等的任何内容。可以将视图控制器视为模型的桥梁,委托应该在其中执行哪些操作。