2015-03-27 4 views
0

Я новичок в C#. У меня есть этот элемент управления на странице следующим образом:Пользовательский валидатор в .ascx не отображает сообщение об ошибке

 <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:  

Но это не совсем понятно для пользователя, чтобы понять, где ошибка. Почему «Электронная почта недействительна». не отображается?

Благодаря

+0

Вы активизировали через код в отладчике? Действительно ли проверена проверка подлинности на стороне сервера? –

+0

да, это ударяет отладчиков. e.IsValid = false; называется. – user1860447

ответ

0

Наконец удалось решить эту проблему, добавив следующее:

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