ASP.NET:编写自定义服务器端验证程序

时间:2009-10-29 17:50:22

标签: asp.net validation

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

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

那么我从哪里开始呢?

2 个答案:

答案 0 :(得分: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;
}

答案 1 :(得分:0)

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