2010-03-22 137 views
0

这里是(我认为)一个有趣的问题。asp.net表单验证。服务器端或客户端

随着AJAX越来越普遍,我越来越喜欢做所有的表单验证服务器端。

图片注册表格前AJAX。你有你所有的验证客户端使用通用的ASP验证控件和验证总结...除...检查用户名可用性,检查电子邮件地址可用性,验证码和不是。 所以你最终得到2种验证,并在2个不同的时刻向用户展示2个不同的UI。 2个字出现在我的脑海里。丑陋。不一致。

所以这里的问题。为什么不做所有的验证服务器端(使用AJAX或不)。

(我没有使用JQuery的是,我应该?)

回答

2

即使使用Ajax,我宁愿避免邮寄到服务器,如果错误是一个简单的拼写错误。就个人而言,如果您的客户端和服务器端验证导致出现不同的错误消息,那么我认为这是您的问题,而不是两者之间的分歧。

话虽如此,没有理由为什么你不能在你输入你的文本时在服务器端使用Ajax进行验证。我看过很多表单,通过Ajax进行“用户名检查”(例如),只要输入您的请求名称。

+0

您的意思是以与验证摘要相同的方式呈现服务器端验证结果。 其实我不喜欢验证总结的有限布局选项。实际上,我想以与展示服务器端验证结果相同的方式呈现客户端验证结果,但验证摘要不够灵活 – Jeroen 2010-03-22 03:00:16

+0

啊,这是一个很好的观点,是的。正因为这个原因,我通常会抛弃内置的ASP.NET验证控件,并始终使用jQuery构建自己的验证控件。这是一个更多的工作,但更灵活。 – 2010-03-22 03:10:48

3

codeka是正确的。客户端验证可防止出现简单错误的服务器往返。

服务器端始终是必需的,因为您无法始终假定客户端验证是正确的。