关于模型视图控制器:MVC-在哪里实现表单验证(服务器端)?

关于模型视图控制器:MVC-在哪里实现表单验证(服务器端)?

MVC - where to implement form validation (server-side)?

在对传统MVC应用程序进行编码时,对服务器端表单验证进行编码的最佳实践是什么?代码是属于控制器层还是模型层?为什么?


我完全同意乔希。但是,您可以在Controller和Model之间创建一种验证层,以便可以在数据到达模型之前对数据执行大多数语法验证。

例如,

验证层将验证日期格式,金额格式,必填字段等...

因此该模型将仅专注于业务验证,例如x数量应大于y数量。


来自维基百科:

Model-view-controller (MVC) is an architectural pattern used in software engineering. Successful use of the pattern isolates business logic from user interface considerations, resulting in an application where it is easier to modify either the visual appearance of the application or the underlying business rules without affecting the other. In MVC, the model represents the information (the data) of the application and the business rules used to manipulate the data; the view corresponds to elements of the user interface such as text, checkbox items, and so forth; and the controller manages details involving the communication to the model of user actions such as keystrokes and mouse movements.

因此,模型-它包含应用程序和业务规则。


基本语法检查应在控件中,因为它会转换模型的用户输入。该模型需要进行实际数据验证。


到目前为止,我在MVC方面的经验完全来自于安全。

Rails在模型中进行100%的验证。
在大多数情况下,这非常有效。我要说的是10倍的9倍。

在某些区域中,您从表单提交的内容与模型不正确匹配。可能会有一些其他的过滤/重新排列等。

解决这些问题的最佳方法是创建人造模型对象,该对象基本上像模型对象一样工作,但与表单数据进行一对一映射。这些伪模型对象实际上不保存任何内容,它们只是附带验证的数据的存储桶。
ActiveForm

就是这样的一个例子(在Rails上)

一旦数据进入这些数据(并且是有效的),通常这是一个非常简单的步骤,即可直接将其传输到您的实际模型中。


推荐阅读

    git设置编码|git语言设置

    git设置编码|git语言设置,,git设置编码点击cap4j搜索从git直接链接上拉代码。git语言设置Git是一个开源的分布式版本控制系统,可以有效、高

    做模型电脑|电脑上做模型的软件

    做模型电脑|电脑上做模型的软件,,电脑上做模型的软件建模软件 中文名 ;sketchup渲染软件 主要用在建筑方案中:对建筑造型的推敲 现在G

    wps如何去掉自动编码

    wps如何去掉自动编码,WPS教程,1.在word中,如何取消自动编号?一、Ctrl+Z法 大多数的Windows程序都支持“Undo”功能,即允许用户进行撤销操作

    电脑显示器模型定制|曲面显示器建模

    电脑显示器模型定制|曲面显示器建模,,曲面显示器建模可以,但效果还是平面的好。曲面屏显示器的优点:1.更广的视野(在同尺寸下,视角效果更广,视

    unicode编码是什么

    unicode编码是什么,字符,字节,本文目录unicode编码是什么Unicode是什么unicode 编码utf8和unicode编码究竟是什么关系有何区别unicode不能

    java设置编码格式|javaweb设置编码格式

    java设置编码格式|javaweb设置编码格式,,javaweb设置编码格式从网页登录邮箱,打开你要看的邮件,右键点击右键内容,里边有一项时邮件编码,选你

    response设置编码|response设置参数

    response设置编码|response设置参数,,1. response设置参数选BRequest常用的方法:getParameter(String strTextName) 获取表单提交的信息.re

    excel编码设置|excel 设置编码

    excel编码设置|excel 设置编码,,excel 设置编码excel插入页码总共分为3步,可以在页面设置选项里自定义页脚样式,以下是具体步骤:进入表格页面