博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
防止刷新重复post提交
阅读量:7202 次
发布时间:2019-06-29

本文共 2161 字,大约阅读时间需要 7 分钟。

这段代码用于防止用户点“提交”按钮后点了刷新导致重复提交post请求。思路是写session,根据每次Session不同判断是不是重复提交。

1 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="重复提交.aspx.cs" Inherits="重复提交" %>  2   3   4   5   6   7       8   9  10     
11
12
13
14
15
16
17
18 19
复制代码
1 using System;  2 using System.Collections.Generic;  3 using System.Linq;  4 using System.Web;  5 using System.Web.UI;  6 using System.Web.UI.WebControls;  7   8 public partial class 重复提交 : System.Web.UI.Page  9 { 10     //在页面第一次加载时执行这句,点刷新时不执行这句11     protected void Page_Load(object sender, EventArgs e) 12     { 13         Response.Buffer = true; 14         //如果Session的Token为空15         if (Session["Token"] == null) 16         { 17             //给Session赋新值执行完毕后, 18 //在aspx中由value="<%=GetSessionToken() %>把取得的Session放在隐藏域19             SetToken(); 20         } 21     } 22  23     //当点击按钮发送post请求时24     protected void Button1_Click(object sender, EventArgs e) 25     { 26         //判断GetSessionToken拿到的当前Session是否和隐藏域中的Session相等27         if (Request.Form["hiddenTestN"].ToString().Equals((GetSessionToken()))) 28         { 29             //如果相等,则页面没有刷新,是正常提交,就把用户输入响应到屏幕,并提交入库30             string txt = this.TextBox1.Text; 31             Response.Write(txt+"提交入库!"); 32         } 33         //如果不相等,说明页面刷新了,则不执行提交操作34         else 35         { 36             Response.Write("这次是重复提交post请求!"); 37         } 38  39         //给Session赋新的值,提交后刷新时也发送了post请求, 40 //所以要在非重复提交成功后改变Session41         SetToken(); 42     } 43  44     //获得Session里的数据45     protected string GetSessionToken() 46     { 47         //如果Session不为空48         if (Session["Token"] != null) 49         { 50             //返回Session当前值51             return Session["Token"].ToString(); 52         } 53         else 54         { 55             //否则返回空串56             return ""; 57         } 58     } 59  60     //给Session赋值61     protected void SetToken() 62     { 63         Session.Add("Token", Session.SessionID + DateTime.Now.Ticks.ToString()); 64     } 65  66 }

转载于:https://www.cnblogs.com/houzhitong/archive/2012/03/17/2403909.html

你可能感兴趣的文章
spring boot + spring data jpa
查看>>
9.22 开课第十九天(window对象)
查看>>
字符串操作总结
查看>>
Python实现批量梯度下降算法
查看>>
超时导致的Galera节点加入集群失败
查看>>
Mongodb学习笔记
查看>>
作业一
查看>>
Oracle 通过数据字典查询系统信息
查看>>
Cnetos 6 / Centos 7 修改主机名
查看>>
UIWebView
查看>>
UIViewController函数调用顺序
查看>>
第三方框架的使用
查看>>
配置Eclipse支持MacBook Pro Retina屏幕的办法(解决Retina屏幕下eclipse字体变虚的问题)...
查看>>
python导包路径的修改
查看>>
C语言第十一次作业--函数嵌套调用
查看>>
hdu 1728 逃离迷宫 *
查看>>
将Word文档转化为HTML格式的文档
查看>>
WCF
查看>>
IDE安装Lombok插件提高开发效率
查看>>
转://使用showplan.sql分析sql Performance
查看>>