2011-08-24 90 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是在这样的情况下要走的路。这是它在支付系统中如此受欢迎的原因之一。