ASP.NET中防止页面刷新造成表单重复提交执行两次操作

发布时间:2022-12-06 22:15:40

之前看过别人防刷新的方法,是让页面刷新或返回上一步让页面过期,这里介绍一种另类的方法,使用Session来处理。实现原理:由于刷新提交表单,实际上提交的就是上一次正常提交的表单,所以我们只要做一个标志,判断出是新表单还是上一次的旧表单就可以分辨出是否进行了重复提交操作。实现方法:在页面上放置一个Hidden域,当页面第一次载入的时候,在Session里面保存一个标志,同时,把这个标志保存到页面上的Hidden里面。在提交表单时,判断表单中提交上来的HiddenSession中的标志是否一致,就可以知道是正常的提交表单,还是刷新页面导致的重复提交。需要注意的是,在每次提交表单的处理之后,要更新Session里面的标志。代码实例:代码很少,首先是页面上。<%@PageLanguage="C#"AutoEventWireup="true"CodeBehind="Default.aspx.cs"Inherits="Test.Web.Default"%>htmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
   
    type="text"id="tbxPass"value=""runat="server"/>  ID="btnSubmit"runat="server"OnClick="Button1_Click"Text="Button"/>  ID="lblMessage"runat="server"Text="">  id="hiddenTest"type="hidden"value="<%=GetToken(%>"name="hiddenTestN"/>

ASP.NET中防止页面刷新造成表单重复提交执行两次操作

相关推荐