2010-02-21 2 views
0

По какой-то причине, когда пользователь нажимает кнопку отправки, и он повторно обновляет страницу, эти же данные снова загружаются в мою базу данных SQL Server 2005. Я не знаю, что это произойдет ........... Почему это происходит? Я использую источник данных SQL !!Загрузка данных еще раз на странице обновления в ASP.NET

Мой код

Try 

     'See if user typed the correct code. 
     If Me.txtSecurity.Text = Session("Captcha") Then 

      If Session("NotifyMe") = "Yes" Then 
       SendEmailNS() 
      End If 

      RaterRate.Insert() 
      RaterRate.Update() 

      DisableItems() 

      lblResultNS.Text = "Thank you for leaving a comment" 

      LoadCompanyList() 
      LoadRateRecords() 

      txtCommentNS.Text = "" 
      txtSecurity.Text = "" 
      lblResultNS.Focus() 

     Else 

      Session("Captcha") = GenerateCAPTCHACode() 
      txtSecurity.Text = "" 
      txtSecurity.Focus() 
      Validator10.Validate() 

     End If 


    Catch ex As Exception 

     lblResultNS.Visible = True  
     lblResultNS.Text = ex.Message.ToString 
     lblResultNS.Focus() 

    End Try 

ответ

0

Это происходит из-за природы WebForms, опирающихся на модели PostBack. Каждый раз, когда вы нажимаете кнопку, единственная форма, которую вы видите внутри страницы, отправляется на сервер вместе с представлением. Когда вы нажимаете F5, вы обычно получаете предупреждение о том, что форма будет отправлена ​​повторно, и если вы нажмете «Да», то на сервере будет выполнено одно и то же действие. Один из способов избежать этого - выполнить перенаправление после сохранения в базе данных:

Response.Redirect("~/success.aspx"); 
+0

Другой способ - сбросить значения формы или изменить идентификатор формы – Adeel

+0

Ai Я не хочу перенаправлять пользователя .......... – Etienne

1

Когда пользователь посещает вашу страницу, создавая новую капчу. после того, как сообщение или другое, его проверка captcha, но не генерация нового. Переместите код «captcha set» в внешнюю область.

If Me.txtSecurity.Text = Session("Captcha") Then 
    ... 
Else 
    ... 
End If 

Session("Captcha") = GenerateCAPTCHACode() 
Смежные вопросы