2011-08-24 91 views
2

我有這樣一段代碼:擊中刷新導致點擊事件,火災

<asp:Button runat="server" Text="Process Payment" /> 

當我點擊按鈕,頁面刷新這是罰款。但現在,當我在瀏覽器上按F5時,我的點擊事件再次被解僱,我可以擊中我的斷點。現在問題是這個按鈕是在它的點擊事件處理程序中聯繫支付網關。按刷新將請求再次發送到支付網關。請幫忙。我該怎麼辦?

重定向到同一頁面上解決了這個問題。但我不想這樣做。還有其他更好的選擇嗎?

回答

3

我所知道的唯一的其他方法是使用AJAX。我們使用ajaxified Telerik控件。服務器端代碼觸發,但沒有完整的回發,所以我們可以不重新發布刷新頁面。

在我們的應用程序的其他部分,我們將使用它你不喜歡Response.Redirect方法。我也不喜歡它。

而且,這裏有一個鏈接,可以幫助:

http://www.codeproject.com/KB/aspnet/SyncControl.aspx

4

這是因爲你刷新已發佈的頁面。這與按下後退按鈕時發生的情況相同,瀏覽器會再次發佈相同的表單。

避免這種情況,使用JavaScript來處理你的帖子之外的唯一辦法,就是重定向到同一個或另一個頁面完成後加工。

2

AJAX是在這樣的情況下要走的路。這是它在支付系統中如此受歡迎的原因之一。