2009-10-29 132 views
2

我想写一个自定义的验证器,它在用户回发之前不做任何事情(即不会为其生成JavaScript)。验证器应确保名称为hello的POST参数。该参数的值必须是逗号分隔的整数字符串。ASP.NET:编写一个自定义的服务器端验证器

我想将其作为实际验证程序的原因是我想将错误消息集成到我正在使用的验证摘要中,该摘要显示错误的项目符号列表。

那么我从哪里开始呢?

回答

2

首先,自定义验证控件添加到页面

<asp:CustomValidator ID="MyValidator" runat="server" ErrorMessage="My error message" 
    OnServerValidate="MyValidator_OnServerValidate" /> 

然后在你的代码隐藏添加MyValidator_OnServerValidate方法。

protected void MyValidator_OnServerValidate(object sender, ServerValidateEventArgs e) 
{ 
     e.IsValid = false; 

     // Validation logic goes here 
     if(Request.Form["hello"] == null) 
      return; 

     ... 

     // If we have made it this far, then everything is valid 
     e.IsValid = true; 
} 
0

验证摘要也适用于客户端错误。也就是说,您不必回发以获取验证摘要以显示新错误。事实上,作为一种策略,我建议尽可能将客户端脚本尽可能地作为服务器端检查。至少 - 启用时 - 客户端检查可以帮助减少网络聊天,服务器资源并改善用户体验。

+0

我问这个问题有一段时间了,但我认为我说我只想要服务器端验证的原因是我很难理解自定义验证器,并且解释如何更简单如果它应该只是服务器端的话,它们会工作。我不记得说实话。 – 2010-08-03 19:01:26