博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ASP.Net中防止页面刷新重复提交的几种方法
阅读量:5938 次
发布时间:2019-06-19

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

【摘要】

目前很多网站都要提交页面插入或更新数据库,比如留言本,一个用户提交留言后,如果按F5,就会重新提交一遍留言,导致数据库出现两条一模一样的留言,

本文介绍了几种防止页面刷新,导致重复提交数据的方法。

 

【全文】

1、也是最简单和最常用的办法,就是使用转向页面语句,分两种:

    a.使用服务器端的 Response.Redirect("YourPage");
    b.使用客户端脚本 <script language=javascript>location.href='yourPage';</script>
    这两种方法的缺点是如果要保留页面数据不太方便,如果不用保留可以采用。

2、操作完毕设置一个Session,进入页面时判断这个Session是否为null,如果不是表示已经提交过了,但是缺点就是这个页面无法再提交了,必须在别的页面清空这个Session。

3、是从网上搜索到的一种方案,学习并共享一下:

DetectRefresh.aspx   
  ===========================       
  

<%@   Page   Inherits="StevenBey.Web.UI.Page"   %>               Detecting   Page   Refresh   [Demo]               
IsRefresh = <%= IsRefresh %>

 

StevenBey.Web.UI.Page.cs   

  ======================   
  

namespace   StevenBey.Web.UI     {     public   class   Page   :   System.Web.UI.Page     {       private   bool   _refreshState;       private   bool   _isRefresh;           public   bool   IsRefresh       {         get         {         return   _isRefresh;         }       }           protected   override   void   LoadViewState(object   savedState)       {         object[]   allStates   =   (object[])   savedState;         base.LoadViewState(allStates[0]);         _refreshState   =   (bool)   allStates[1];         _isRefresh   =   _refreshState   ==   (bool)   Session["__ISREFRESH"];       }           protected   override   object   SaveViewState()       {         Session["__ISREFRESH"]   =   _refreshState;         object[]   allStates   =   new   object[2];         allStates[0]   =   base.SaveViewState();         allStates[1]   =   !_refreshState;         return   allStates;       }     }     }

 

 

转载地址:http://ouvtx.baihongyu.com/

你可能感兴趣的文章
matlab练习程序(最大流/最小割)
查看>>
CentOS安装中文支持
查看>>
Java内部类详解
查看>>
(document).height()与$(window).height()
查看>>
Spring Boot|监控-Actuator
查看>>
java读取txt字符串挨个写入int数组
查看>>
RabbitMQ广播:fanout模式
查看>>
部署Java项目到阿里云服务器(Ubuntu16.04 64位)
查看>>
货币转换常用方法
查看>>
Manthan, Codefest 17
查看>>
TOJ4505: KOSARE
查看>>
csa Round #73 (Div. 2 only)
查看>>
Extjs4.2如何实现鼠标点击统计图时弹出窗口来展示统计的具体列表信息
查看>>
KeepAlive随笔
查看>>
你一定要知道的关于Linux文件目录操作的12个常用命令
查看>>
集合文件操作
查看>>
团队开发博客
查看>>
2012-06-04 老男孩老师 “我毕业了”(转)
查看>>
高可用软件heartbeat服务章节目录(草稿)
查看>>
内建校验器2
查看>>