最近一直再研究如何防止刷新页面后重复提交的问题。在网上搜索了好多资料,好多就是用隐藏控件呀,session之类
的或者禁止按钮。但是这些好像都没有解决我的问题,后来在csdn上看了一篇博客,大致思路是利用委托的方法来防止页
面刷新提交的问题。代码整理了一下:
前台代码:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default7.aspx.cs" Inherits="Default7" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title>页面提交</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Button ID="btn" runat="server" Text="确 定" OnClientClick="Submitting(this);return true;"
OnClick="btn_Click" />
<br />
</div>
</form>
</body>
</html
后台代码:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class Default7 : System.Web.UI.Page
{
private static bool SubmitState = false;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
SubmitState = false;
}
//判断页面是否初始化以及提交的状态
if (IsPostBack && SubmitState)
{
//从委托队列中删除原始事件
this.btn.Click -= new EventHandler(btn_Click);
this.btn.Click += new EventHandler(kenButton1_Click);
}
}
//重复提交事件
private void kenButton1_Click(object sender, EventArgs e)
{
Response.Write("请不要重复提交,或者刷新");
}
//提交
protected void btn_Click(object sender, EventArgs e)
{
Response.Write("提交成功");
SubmitState = true;
}
}
分享到:
相关推荐
防止页面刷新重复提交的方法 防止页面刷新重复提交是 Web 开发中常见的问题,多次提交表单可能会导致不必要的数据重复录入、服务器压力增大等问题。下面我们将详细介绍防止页面刷新重复提交的方法。 一、验证码...
### ASP.NET中防止刷新页面造成表单重复提交 在Web应用程序开发中,特别是在使用ASP.NET进行网站构建时,一个常见的问题是表单重复提交。这通常发生在用户通过按下浏览器的F5键来刷新页面的情况下,此时之前的表单...
### Struts Token机制防止页面刷新及重复提交 在Web应用开发过程中,特别是在使用MVC框架如Apache Struts进行开发时,防止表单重复提交是一个重要的安全措施。表单重复提交通常发生在用户点击“提交”按钮后,由于...
标题"ASP.NET刷新重复提交"指向了这个领域的解决方案,主要聚焦于如何避免在刷新操作后重复执行同一份表单提交。一种常用的解决方法是使用服务器端的Session存储隐藏的状态。 在描述中提到的“采用Session存储隐藏...
本文旨在深入探讨如何有效地预防页面的重复提交与刷新现象,通过具体实例和详细的分析来帮助开发者更好地理解和解决这类问题。 #### 二、问题背景及应用场景 ##### 1. 重复提交与刷新场景 重复提交通常发生在用户...
这样,即使用户刷新页面,也不会重新发送POST请求,而是进行GET请求,从而避免了重复提交。 3. **服务器端令牌验证** 在服务器生成一个唯一的令牌,将其隐藏字段添加到表单中。当表单提交时,服务器会检查令牌是否...
页面提交后,后退,刷新会重复提交,导致很多麻烦,.net里可以这样来解决一下,一个类文件,省去每个页面都写的麻烦
防卡页面刷新重复提交源代码,根据msdn上提供方法进行改造,解决了诸多bug,实用性很强
使用Ajax进行异步提交,服务器返回成功后更新页面状态,而不是整个页面刷新。这样,用户点击刷新按钮只会重新加载已更新的页面,不会再次触发提交。 7. **HTTP状态码和Cache-Control**: 在响应头中设置合适的...
**场景说明**:重复提交和刷新通常发生在用户操作过程中,特别是在提交表单后,如果用户不知道操作是否成功完成,可能会尝试刷新页面或重复点击提交按钮,这就会导致数据被重复提交到服务器。 **是否需要处理**:...
在Web开发中,防止用户刷新页面...综上所述,本资源提供的代码和说明可以帮助开发者理解并实施防止用户刷新重复提交数据的机制,通过使用Token,可以有效地保护Web应用免受重复操作的困扰,提高系统的稳定性和安全性。
然而,这种方法并不能完全防止所有情况下的重复提交,因为某些用户可能使用浏览器的刷新功能或者在网络延迟后多次点击。 ASP.NET MVC框架提供了一些内置机制来处理此问题。例如,可以使用`AntiForgeryToken`辅助...
2.已经提交成功,然后又刷新页面重复提交 3.已经提交成功,然后点击后退,然后又重复提交。 重复提交的缺点: 1.加重了服务器的负担。 2.导致错误的操作。 实例:如果在淘宝上买一个东西,然后点击了订单提交,然后...
在网页开发中,尤其是涉及到用户交互的表单提交时,防止页面刷新导致的事件重复提交是一个常见的挑战。这个问题源于浏览器的刷新行为,它会重新发送上一次的HTTP请求,包括POST请求,即表单提交。在ASP.NET环境中,...
在使用Layui设计表单时,经常会遇到表单提交后页面刷新导致的重复提交问题。为了解决这个问题,开发者需要确保表单只提交一次,防止不必要的数据重复处理或者服务器的重复计算。下面详细解释几种防止Layui表单重复...
前端的这种方法虽然有效,但并不能完全解决问题,因为如果用户直接刷新页面或者使用浏览器的回退/前进功能,前端的状态可能无法保持,导致重复提交。 2. **后台session存储随机token**:更为安全的方法是在服务器端...
为了解决这个问题,我们需要在Vue中实现倒计时数据的持久化,这样即使在页面刷新或重新进入后,倒计时依然能从上次的剩余时间继续进行。文章中介绍了在Vue中保存倒计时数据到Vuex,并利用localStorage进行本地持久化...
下面将详细讲解Struts2令牌解决重复提交问题的过程: 1. **生成令牌**:在Action中,使用`TokenAwareActionSupport`作为基类,这个类实现了`TokenSessionStore`接口,可以方便地获取和验证令牌。在表单展示之前,...
防止提交 在用struts2.0标签开发...在点击"提交"后,我们通常会弹出一个提示信息的页面,用户此时有可能会按f5刷新当前提交的action,从而将多个相同的数据保存到了后台数据库,并且造成了潜在的安全危险! 避免重复提交呢?
对于第二种原因,即提交表单后刷新浏览器页面导致的重复提交,Struts2框架允许开发者通过配置结果视图的跳转方式来解决。默认情况下,Struts2使用的是dispatcher类型的forward跳转。为了避免刷新页面导致的重复提交...