点击刷新会导致点击事件触发

时间:2011-08-24 04:29:01

标签: c# asp.net

我有这段代码:

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

当我点击按钮时,页面会刷新,这很好。但现在当我在浏览器上按F5时,我的点击事件再次被触发,我可以点击我的断点。现在问题是这个按钮正在点击它的点击事件处理程序中的支付网关。按刷新将请求再次发送到支付网关。请帮忙。我该怎么办?

重定向到同一页面可以解决问题。但是我不想这样做。还有其他更好的选择吗?

3 个答案:

答案 0 :(得分:4)

这是因为您刷新了已发布的页面。当您按下后退按钮并且浏览器警告您再次发布相同的表单时,会发生同样的情况。

除了使用JavaScript处理帖子之外,避免这种情况的唯一方法是在完成处理后重定向到相同或另一个页面。

答案 1 :(得分:3)

我所知道的另一种方法是使用AJAX。我们使用ajaxified Telerik控件。服务器端代码触发,但没有完整的回发,因此我们可以刷新页面而无需重新发布。

在我们的应用程序的其他部分,我们将使用您不喜欢的Response.Redirect方法。我也不喜欢它。

此外,这里有一个可以提供帮助的链接:

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

答案 2 :(得分:2)

AJAX是这种情况下的方式。这是它在支付系统中如此受欢迎的原因之一。