使用客户端jQuery验证平衡asp.net服务器端验证

时间:2011-09-09 04:58:36

标签: jquery asp.net validation

我的问题是在验证目的上遇到了真正的僵局。

我可以在ASP.net中用两件事进行验证

  1. 使用验证控件
  2. 使用jQuery
  3. 现在有几种情况:

    1. 如果我使用jQuery,我不能使用服务器端page.isvalid方法从服务器端执行验证。

    2. 如果我使用验证控件实际加载验证控件的页面。它使页面笨重。所以我也想避免这一部分。我不希望带宽较低的客户端加载页面的速度很慢。由于那些验证控件生成视图状态和自定义验证JavaScripts。

    3. 如果在浏览器中关闭JavaScript调试或关闭JavaScript执行。客户端上的jQuery和验证控件都不会发生。因此,在这种情况下,我唯一的选择是使用page.isvalid方法从服务器端验证表单。

    4. 现在可以考虑所有这三种情况并执行服务器端验证,因为JavaScript验证很容易受到攻击我真的不想依赖它。但同时我看到服务器端控件它们真的很笨重,所以不会牺牲我的带宽(我肯定不会想要,而是倾向于使用JavaScript验证)。并且如果我的jQuery由于JavaScript执行关闭而失败。如何在不使用任何验证控件的情况下执行服务器端验证?

2 个答案:

答案 0 :(得分:1)

我认为您高估了使用验证控件的成本。它确实给页面增加了一点开销,但没有你想象的那么多。如果您想使用Page.IsValid,我建议您使用验证控件。出于性能原因,我从来不认识任何人远离他们。

答案 1 :(得分:1)

对于截至目前发布的两条评论都是+1,但我想补充一点,即使服务器端的验证应该始终,客户端验证也很好,因为它可以为用户提供即时反馈而不是回发整个页面,并等待几秒钟回来一个错误列表。例如,在移动开发中,客户端验证很重要,因为网络延迟通常较大,并且您希望尽可能保证提交的输入将一次性在服务器端通过验证。

总之,客户端验证永远不应该被信任,但应始终执行。

作为一种品味,我宁愿使用JQuery进行验证,而不是任何asp.net验证控件。