2011-07-12 7 views
2

テキストフィールド、ラベル、送信ボタンがほとんどない単純なウェブフォームがあります。 Submitボタンをクリックすると、button1イベントが発生し、データが送信されます。ウェブページのヒットリフレッシュ時に、Button1_Clickイベントが再度発生します

は、しかし、私が何であるかを心配、私はその後、すぐにデータを提出した後にページを更新したときに、私は次のようerrror取得:

enter image description here

をそして、私は、データベースを参照する場合、エントリをチェックするためにそこに存在します重複エントリ。

私はリフレッシュしてボタンをクリックしてもボタンがクリックされていないにもかかわらず、なぜボタンがクリックされているのか理解できません。

どうすればこのような事態を回避できますか?

+0

[ページ更新後に最後のイベントが発生しないようにする方法](http://stackoverflow.com/questions/3895158/how-to-prevent-firing-of-last-event-after-page-リフレッシュ) – V4Vendetta

+1

それ以外に何がありますか?ブラウザでさえあなたに警告します。 – leppie

+0

http://stackoverflow.com/questions/665399/how-do-i-stop-the-back-and-refresh-buttons-from-resubmitting-my-form - ここで答えを見つけることができます。 – Illuminati

答えて

4

:あなたがページ、ブラウザを更新あなたはそれがサーバにPOSTを送信フォームを掲載するので、まさにそれは以前に送るのと同じ要求を送信します。一般的に、同じフォームは決して2回提出されるべきではないので、ブラウザ(IEだけでなく)が警告を出します。同じフォームを再送信し、コードは2回目に実行されることをあなたは納得しているからです。

これは正常な動作ですが、! POSTを処理するたびに、同じデータを2回転記しないことを確認する必要があります。これは重大なエラーです。 bussinessロジックレバーまたはDBレベルのどちらでも処理できますが、問題はありません。しかし、それは処理する必要があります。

0

リフレッシュボタンを押すと、以前にボタンクリックイベントによって開始された現在のページを取得する要求が送信されます。

以下のリンクからさらに詳しいヘルプを得ることができます。ここで何が起こっている

http://aspalliance.com/687
http://msdn.microsoft.com/en-us/library/ms379557%28VS.80%29.aspx
http://www.codersource.net/asp-net/asp-net-articles/working-with-post-back-in-asp-net.aspx
http://www.knowdotnet.com/articles/asppagerefresh.html

1

これは自然な動作です。これを回避する最も簡単な方法の1つは、投稿の後に同じページにリダイレクトすることです。

関連する問題