我的问题是在验证目的上遇到了真正的僵局。
我可以在ASP.net中用两件事进行验证
现在有几种情况:
如果我使用jQuery,我不能使用服务器端page.isvalid
方法从服务器端执行验证。
如果我使用验证控件实际加载验证控件的页面。它使页面笨重。所以我也想避免这一部分。我不希望带宽较低的客户端加载页面的速度很慢。由于那些验证控件生成视图状态和自定义验证JavaScripts。
如果在浏览器中关闭JavaScript调试或关闭JavaScript执行。客户端上的jQuery和验证控件都不会发生。因此,在这种情况下,我唯一的选择是使用page.isvalid方法从服务器端验证表单。
现在可以考虑所有这三种情况并执行服务器端验证,因为JavaScript验证很容易受到攻击我真的不想依赖它。但同时我看到服务器端控件它们真的很笨重,所以不会牺牲我的带宽(我肯定不会想要,而是倾向于使用JavaScript验证)。并且如果我的jQuery由于JavaScript执行关闭而失败。如何在不使用任何验证控件的情况下执行服务器端验证?
答案 0 :(得分:1)
我认为您高估了使用验证控件的成本。它确实给页面增加了一点开销,但没有你想象的那么多。如果您想使用Page.IsValid,我建议您使用验证控件。出于性能原因,我从来不认识任何人远离他们。
答案 1 :(得分:1)
对于截至目前发布的两条评论都是+1,但我想补充一点,即使服务器端的验证应该始终,客户端验证也很好,因为它可以为用户提供即时反馈而不是回发整个页面,并等待几秒钟回来一个错误列表。例如,在移动开发中,客户端验证很重要,因为网络延迟通常较大,并且您希望尽可能保证提交的输入将一次性在服务器端通过验证。
总之,客户端验证永远不应该被信任,但应始终执行。
作为一种品味,我宁愿使用JQuery进行验证,而不是任何asp.net验证控件。