最近一直再研究如何防止刷新页面后重复提交的问题。在网上搜索了好多资料,好多就是用隐藏控件呀,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;
}
}
分享到:
相关推荐
防止页面刷新重复提交的方法. 防止页面刷新重复提交的方法.
ASP.NET中防止刷新页面造成表单重复提交
页面提交后,后退,刷新会重复提交,导致很多麻烦,.net里可以这样来解决一下,一个类文件,省去每个页面都写的麻烦
防卡页面刷新重复提交源代码,根据msdn上提供方法进行改造,解决了诸多bug,实用性很强
2.已经提交成功,然后又刷新页面重复提交 3.已经提交成功,然后点击后退,然后又重复提交。 重复提交的缺点: 1.加重了服务器的负担。 2.导致错误的操作。 实例:如果在淘宝上买一个东西,然后点击了订单提交,然后...
提供源代码和思想,整体架构都在,只需加入你自己的业务逻辑即可。
防止页面的重复提交和刷新,详细实例和注解
源码,下载下来直接可以用(防止用户刷新,重复提交数据) 有十分清晰的操作步骤,和注释,代码也封装的很好,我经常用
防止提交 在用struts2.0标签开发...在点击"提交"后,我们通常会弹出一个提示信息的页面,用户此时有可能会按f5刷新当前提交的action,从而将多个相同的数据保存到了后台数据库,并且造成了潜在的安全危险! 避免重复提交呢?
struts2令牌解决页面重复提交问题,资源中包含一个实例代码
在处理页面事件时,我们会经常会碰到这样的情况:当我们在提交一项页面表单时,在提交成功后,当我们试图按F5刷新页面时,数据会再次的被重复提交
当提交完一个页面后,如果我们再次点击F5刷新该页面的话,会弹出一个提示,提示我们如果继续,则会重新发送提交我们刚才提交的内容,要是类似付款或一次性的操作,我们不应该这样操作,否则会造成重复提交的问题。...
服务器端避免表单的重复提交,利用同步令牌来解决重复提交的基本原理如下:(1)用户访问提交数据的页面,服务器端在这次会话中,创建一个session对象,并产生一个令牌值,将这个令牌值作为隐藏输入域的值,随表单一起发送到...
当用户将信息提交到服务器,服务器响应采用forward方式调转到下一个页面后,此时地址栏中显示的是上个页面的URL,若刷新当前页面,浏览器会将再次提交用户先前输入的数据,就会再次出现表单重复提交的问题。...
防止表单重复提交。判断是新打开的页面还是刷新的页面 判断是新打开的页面还是刷新的页面
之前看过别人防刷新的方法,是让页面刷新或返回上一步让页面过期,这里介绍一种另类的方法,使用Session来处理。 实现原理: 由于刷新提交表单,实际上提交的就是上一次正常提交的表单,所以我们只要做一个标志,...
本篇文章主要介绍了网页如何防止刷新重复提交与如何防止后退的解决方法,具体如下: 提交后禁用提交按钮(大部分人都是这样做的) 如果客户提交后,按F5刷新怎么办? 使用Session 在提交的页面也就是数据库处理之前: ...
PHP防止刷新重复提交,通过不断刷新(Refresh or Reload)表单提交页面,可以重复提交表单内容,可以利用 PHP 的 Session 来避免这一点,Session 保存在服务器端,在 PHP 过程中改变 Session 变量的值后,即保存在...
几种防止表单重复提交的方法 禁掉提交按钮。表单提交后使用Javascript使提交按钮disable。这种方法防止心急的用户多次点击按钮。但有个问题,如果客户端把Javascript给禁止掉,这种方法就无效了。 我之前的文章曾说...