首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >输入验证在MVC应用程序中属于哪里?

输入验证在MVC应用程序中属于哪里?
EN

Stack Overflow用户
提问于 2010-01-15 08:33:31
回答 5查看 7.5K关注 0票数 23

我有一个从表单接收输入的MVC应用程序。

这是一个登录表单,因此唯一需要验证的是检查输入是否为非空。

现在,在我将其传递给模型之前,我会在控制器中对其进行验证。

这是不是最佳实践?它属于模型吗?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-01-15 08:48:48

我不认为有官方的最佳实践将验证限制在MVC模式的任何单个部分。例如,您的视图可以(也应该)使用Javascript进行一些前期验证。您的控制器还应该提供相同类型的验证,以及更多与业务逻辑相关的验证。该模型还可以提供验证形式,即不允许空值的setter。

有一个关于这个at joelonsoftware的有趣的讨论。

票数 13
EN

Stack Overflow用户

发布于 2010-02-23 16:39:22

我已经考虑了很长一段时间,在尝试在控制器和模型中都进行验证之后……最后,我得出结论,对于我的许多应用程序...验证属于模型,而不是控制器。为什么?因为相同的模型将来可能会被各种其他控制器调用或API使用。然后我不得不一遍又一遍地重复验证过程。这将违反DRY并导致许多错误。此外,在哲学上,它的模型与数据库(或其他持久存储)交互,因此是一种“最后的酒精”的地方来做这件事。

因此,我在控制器中执行get/post转换,然后将原始数据发送到模型进行验证和处理。当然,我经常做php/mysql web应用程序,如果你在做其他事情,结果可能会有所不同。我希望这对某些人有帮助。

票数 8
EN

Stack Overflow用户

发布于 2010-01-15 08:38:58

它的业务逻辑,所以不,它不属于模型。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2068627

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档