MVC3 .NET - 何时使用客户端验证方案

时间:2012-01-12 11:54:52

标签: asp.net-mvc asp.net-mvc-3 validation

经过一些建议后,我的解释是否适用于以下情况:

创建/更新(2个独立视图 - 创建视图和更新视图)用户记录的简单屏幕。

屏幕包含3个字段: 名称, 电话号码, 国民保险号码(NI号码)

我们已经验证: 电话号码(确保格式正确) NI编号(确保格式正确)

数据库中的NI编号有唯一索引

这是我的理解 - 完全开放给人们告诉我这是错的或有更好的方法......

因此,如果输入新记录,我们需要检查NI编号是否唯一 - 因此我们必须POST并运行服务器端验证 - 这意味着Javascript验证无关紧要 - 因此所有验证都必须发生在服务器端。

如果从数据库中检索记录然后更新,则如果未更新NI编号,则客户端验证是相关的。

所以,我不需要Create视图的任何客户端验证例程,因为我总是需要确保NI编号是唯一的,而对于更新视图我需要客户端验证例程作为NI编号可能我们仍然希望验证其他字段(必要时)客户端,以便最大限度地减少网络流量。

我是对的吗?

由于

1 个答案:

答案 0 :(得分:0)

客户端验证适用于基本规则,例如必填字段,电话格式,范围之间的数字等。客户端验证的最大优点是您的服务器将减少开销(因为未完成的表单永远不会发布并且将为您的客户提供更好的体验,因为他不需要等待服务器响应。

服务器端验证适用于基本规则和复杂规则,如唯一字段,在其他系统查找等。所以,是的,您将复制这些规则。

我目前正在使用Fluent Validation + Unobtrusive Client Side Validation,这使我能够使用客户端和服务器端验证,而无需重复代码。如果验证很复杂,那么它将无法在客户端获得,但基本验证将在双方执行。最重要的是,我只需要编写一次这个规则。顺便说一句,它也适用于Data Annotations,它是ASP.NET MVC 3的默认验证引擎。