我应该实现客户端和服务器端验证吗?

时间:2012-05-09 16:35:09

标签: c# asp.net-mvc-3

我一直认为,当我点击提交按钮时,我应该验证JavaScript上的表单数据,之后我应该验证服务器端C#上提交的数据。


但是现在我想我可能不需要在JavaScript上验证表单数据?因为Ajax无论如何都不会重新加载页面,这意味着来自JavaScript的错误消息和来自C#的错误消息之间的用户没有区别。

奇怪的想法?

4 个答案:

答案 0 :(得分:7)

始终在服务器端实施验证。然后在考虑客户端验证之前确保此验证有效。这样做的原因是我看到很多人首先实现了客户端验证,然后忘记了服务器端验证,认为他们正在验证某些东西。客户端验证不应该被视为验证。它应被视为允许改善用户体验(用户无需提交整个表单即可获得即时反馈)并保留带宽的内容。因此,如果您想要这个额外的,那么请继续并实施客户端验证。

答案 1 :(得分:7)

您应始终验证服务器端。

验证客户端是可选的,以提高可用性。

答案 2 :(得分:1)

通常,在服务器端和客户端都实现验证是一种很好的做法(即使只强制服务器端验证)。

原因是因为有人可以通过您的客户端验证来破坏您的域名完整性。

无论如何,即使在客户端验证失败,客户端验证也是有用的,以防止往返服务器

答案 3 :(得分:1)

如果你只需要做1,服务器端肯定是要走的路。

虽然Ajax为用户提供了页面未发布的“错觉”,但您仍然会为您的站点生成HTTP流量,因此根据您的托管情况,可能会增加不必要的成本并加载您的Web服务器。 / p>

我的.02美分?今天有了所有漂亮的JS库,没有充分的理由不实现客户端验证。