怎样避免(F5)刷新页面造成的重复提交

避免刷新页面造成的重复提交

1.Ajax

页面的按钮使用ajax提交,后台用ashx页面处理。即可防止页面重复提交

  
2. Hidden ,session

 

使用一个Hidden标签和session一起来做标识

在提交表单后,修改Session的值。使得两者的值不等,在提交表单前,如果检测到此种情况,则表示表单重复提交。

前台页面

<div>            

 <asp:HiddenField ID="hid"   runat="server" />                        

<asp:Button ID="Button1" runat="server" Text="Button"  OnClick="Button1_Click"   />        

</div>    


J完成提交后,使用hidSession的值同步

 

 $(function () {         document.getElementById("hid").value= "<%=Session["F5_Fresh"].ToString()%>"        })

 

后台

protected void Page_Load(object sender, EventArgs e)   

 {        

  if (this.IsPostBack)        

{                   }  

      else       

 {            //初始化页面时给 Session赋值,同时前台也要给隐藏控件赋值           

 Session["F5_Fresh"] = Guid.NewGuid().ToString();       

 }   

 }  


  protected void Button1_Click(object sender, EventArgs e)   

 {      

  //在处理前进行判断        

if (CheckPageSession())      

  {           

 Session["F5_Fresh"] = Guid.NewGuid().ToString();                        

 //业务代码       

 }        

else        {            return;        }    

}    

/// <summary>   

 /// 检测是否相等,如果相等表示第一次提交,不相等表示重复提交    

/// </summary>    

/// <returns></returns>   

 private bool CheckPageSession()   

 {         return hid.Value == Session["F5_Fresh"].ToString();    }

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值