【发布时间】: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