2014-09-29 3 views
0

Проверка на стороне клиента работает нормально. Я отключил клиентскую сторону, чтобы убедиться, что она также работает на стороне сервера, но не работает. Компилятор достигает «SaveData», даже если входной текст недействителен. Нет панелей обновлений. Как я могу это решить.Проверка на стороне сервера не работает - ASP.NET

ASPX:

<asp:TextBox ID="txtDept" runat="server" pattern="[a-z A-Z]*"></asp:TextBox> 

<asp:RegularExpressionValidator 
    ID="revDept" 
    runat="server" 
    ValidationExpression="^[a-zA-Z\s]{1,50}$" 
    ControlToValidate="txtDept" 
    Display="Dynamic" 
    ErrorMessage="Only alphabets and spaces are allowed." 
    EnableClientScript="false"> 
</asp:RegularExpressionValidator> 

C#:

protected void btnSubmit_Click(object sender, EventArgs e) 
    { 
     if (Page.IsValid) 
     { 
      SaveData(); 
     }   
    } 
+4

Явно вызываю страницу. Validate() на стороне сервера. –

+2

Refer: http://stackoverflow.com/questions/13762467/how-does-page-isvalid-work?answertab=votes#tab-top –

+2

Также попробуйте удалить шаблон из текстового поля. Вы можете столкнуться с конфликтом шаблонов с обоими (и они не эквивалентны) –

ответ

1

Вам нужно либо иметь "CausesValidation" включен на кнопку отправки (мы не можем проверить в вашем коде, если ему так), или явно вызывать «Page.Validate()» перед тем, как проверить свойство IsValid.

Также обратите внимание на How does Page.IsValid work?, это может быть helful.

Смежные вопросы