C# Asp.net验证控件和服务器端验证
我最近发现,您需要在服务器端代码中执行一些检查,以检查页面是否有效。我以前的假设是,当验证器发现不正确的输入时,执行会自动停止 我将以下代码放在需要验证的事件上:C# Asp.net验证控件和服务器端验证,c#,asp.net,validation,C#,Asp.net,Validation,我最近发现,您需要在服务器端代码中执行一些检查,以检查页面是否有效。我以前的假设是,当验证器发现不正确的输入时,执行会自动停止 我将以下代码放在需要验证的事件上: if (!Page.IsValid) return; 这是正确的方法吗 另外,如果我的页面有两个验证组,正确的组是否会自动在服务器上运行(由按钮触发的组),或者我是否需要使用page.Validate(“groupName”)调用它 谢谢最好同时检查客户端和服务器。客户机部分应该自动为您完成,但在服务器上检查
if (!Page.IsValid)
return;
这是正确的方法吗
另外,如果我的页面有两个验证组,正确的组是否会自动在服务器上运行(由按钮触发的组),或者我是否需要使用page.Validate(“groupName”)
调用它
谢谢最好同时检查客户端和服务器。客户机部分应该自动为您完成,但在服务器上检查它是一种防御措施,以防有人以任何方式绕过您的UI 您可以为按钮分配ValidationGroup,该值应与您分配给验证器的ValidationGroup的值相同。单击按钮时,它可能会对同一组执行客户端验证,如您所述,将停止执行(防止回发) 在服务器端,您将完全按照您提到的操作:
Page.Validate("WhateverGroup");
if (!Page.IsValid)
return; //Didn't pass validation
else
//Do whatever
如果您有多个组,那么您应该检查每个组(如果适用)(某些组可能不适用,取决于某些条件,这就是您通常使用组的原因)
编辑
关于你的问题:
选中的“默认”组由发布页面的控件确定。也就是说,如果发布页面的控件将“WhateverGroup”作为其验证组,那么只有带有“WhateverGroup”的验证器才会被验证
Page.IsValid
仅应在调用Page.Validate
方法后进行检查Page.IsValid
只是一个标志,它在您调用Page.Validate的任何时候都会被触发。无论您使用组还是不使用组来调用它,验证和不验证都是有效的
参考资料: