【问题标题】:Custom validator in .ascx does not display the error message.ascx 中的自定义验证器不显示错误消息
【发布时间】:2015-03-27 15:18:46
【问题描述】:

我是 C# 新手。我在页面上有这个控件如下:

     <asp:ValidationSummary runat="server" HeaderText="There were errors on the page:" ShowSummary="true" ForeColor="Red"/>
        <asp:TextBox id="email" runat="server" />
        <asp:CustomValidator ID="emailValidator" runat="server" ErrorMessage="Email is invalid." ForeColor="Red" OnServerValidate="ValidateEmail" ControlToValidate="email" Display="Dynamic">*</asp:CustomValidator>

在cs代码中:

protected void ValidateEmail(object o, ServerValidateEventArgs e)
{
  ValidateEmailAttribute emailValidator = new ValidateEmailAttribute();
  if (!emailValidator.Validate(this.email.Text))
  {
    e.IsValid = false;
  }
  if (this.email.Text.Contains("#"))
  {
      e.IsValid = false;
  }
  return;
}

当电子邮件无效时,它不会显示错误消息。页面上以红色显示的全部内容是:

    There were errors on the page:    

但这还不够清楚,用户无法理解错误在哪里。为什么“电子邮件无效”。不显示?

谢谢

【问题讨论】:

  • 您是否在调试器中单步执行过代码?服务器端电子邮件验证是否确定命中?
  • 是的,它正在攻击调试器。 e.IsValid = 假;被调用。

标签: c# ascx customvalidator


【解决方案1】:

终于可以通过添加这个来解决这个问题:

  this.emailValidator.ErrorMessage = "Email is invalid. '#' is not allowed in email.";

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-08
    相关资源
    最近更新 更多