`
long546324
  • 浏览: 203128 次
  • 性别: Icon_minigender_1
  • 来自: 云南
社区版块
存档分类
最新评论

ASP.Net中防止页面刷新重复提交的几种方法

    博客分类:
  • .net
阅读更多
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"   %>  
<html>  
<head>  
<title>Detecting   Page   Refresh   [Demo]</title>  
</head>  
<body>  
<form   runat="server">  
<asp:button   Text="Test   Refresh"   runat="server"   />  
</form>  
IsRefresh   =   <%=   IsRefresh   %>  
</body>  
</html>  

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;  
    }  
}  
}

分享到:
评论

相关推荐

    asp.net防止页面刷新的办法

    主要介绍在web开发过程防止页面刷新的几种方法供大家参考

    ASP.NET页面刷新方法总结.docx

    简单的介绍了几种asp.net页面刷新方法,请多都指教谢谢。

    ASP.NET刷新页面的几种方法详解

    介绍了ASP.NET刷新页面的几种方法,有需要的朋友可以参考一下

    asp.net知识库

    ASP.NET 2.0 正式版中无刷新页面的开发(示例代码的补充) ASP.NET2.0中themes、Skins轻松实现网站换肤! ASP.NET 2.0 中的代码隐藏和编译 ASP.NET 2.0 Language Swithcer and Theme Swicher 多语言转换和多样式主题...

    刷新页面的几种方法小结(JS,ASP.NET)

    本篇文章只要是对刷新页面的几种方法进行了详细的总结介绍,包括JS与ASP.NET。需要的朋友可以过来参考下,希望对大家有所帮助

    亮剑.NET深入体验与实战精要2

    5.5.3 ASP.NET连接Oracle失败的解决方法 245 本章常见技术面试题 246 常见面试技巧之经典问题巧回答 246 本章小结 247 第6章 关于XML 249 6.1 XML概述 250 6.1.1 XML和HTML有什么区别 250 6.1.2 XML的优势 250 6.2 ...

    asp.net服务器上几种常见异常的解决方案.

    如下 (1)配置Asp.net站点ISS报出:服务器应用程序不可用.具体异常信息如下: ...属性中查看运行的环境竟是Asp.net Framework 1.1版本. 我修改成了.NET FrameWork2.0版本.结果出现这个错误提示. (1)一般情况下.NET2.

    ASP.NET程序中常用的三十三种代码.txt

    ASP.NET程序中常用的三十三种代码 1. 打开新的窗口并传送参数:  传送参数: response.write("&lt;script&gt;window.open(’*.aspx?id="+this.DropDownList1.SelectIndex+"&id1="+...+"’)&lt;/script&gt;")  接收参数: ...

    亮剑.NET深入体验与实战精要3

    5.5.3 ASP.NET连接Oracle失败的解决方法 245 本章常见技术面试题 246 常见面试技巧之经典问题巧回答 246 本章小结 247 第6章 关于XML 249 6.1 XML概述 250 6.1.1 XML和HTML有什么区别 250 6.1.2 XML的优势 250 6.2 ...

    详解.net mvc session失效问题

    .net mvc中,Session失效需要考虑几种情况: •基于权限认证的Action,使用非Ajax请求; •基于权限认证的Action,使用JQueryt Ajax请求; •基于权限认证的Action,使用.net mvc封装的Ajax请求; •无权限认证的...

    ASP.NET Ajax级联DropDownList实现代码

    了解级联DDL 那么考虑以下几种常见情景: · 用户注册时需要选择国家、省、市、地区等。 · 用户购买产品时选择产品类别、...这样不仅十分麻烦,过多的页面刷新会给用户带来反感。那么如何实现无刷新的级联DropDownList

    ExtAspNet_v2.3.2_dll

    -使得Asp.net的控件ImageButton具有和Asp.net的Button控件类似的行为(Ajax提交)(feedback:261629698)。 +TabStrip增加GetAddTabReference和GetRemoveTabReference两个函数,用来向TabStrip控件动态增加删除Tab。...

    ExtAspNet v2.2.1 (2009-4-1) 值得一看

    +PageManager的实例方法AddAjaxUpdateControl改名为AddAjaxAspnetControls,现在可以在Page_Load中设置需要在AJAX中需要更新的Asp.net控件了。 -在Page_Load中设置了哪些需要在AJAX中更新的Asp.net控件会在回发时...

    Angel企业网站管理系统 v1.0 (蓝色风格).zip

    4、网站采用三种页面处理技术,可以生成纯静态网页模式、在不使用asp.net其余为静态插件的前提进行伪静态方式访问、前两者如都不用还可以用动态访问。 5、Angelcms在显示列表数量时,页面可选生成静态,大大减轻...

    Angel工作室(Angelcms!NT) 蓝色企业网系统V1.0

    4、网站采用三种页面处理技术,可以生成纯静态网页模式、在不使用asp.net其余为静态插件的前提进行伪静态方式访问、前两者如都不用还可以用动态访问。 5、Angelcms在显示列表数量时,页面可选生成静态,大大减轻...

    郑州大学包装在线

    上述两种方法,都要记着要把 web.config 中的相应地址改变。 好了,现在打开浏览器,输入: http://localhost/pack/ http://(你的机器名)/pack/ http://127.0.0.1/pack/ http://(你的真实IP)/pack/ 就...

    calendar日历文本框插件

    日期控件 .net中有几种日期控件的显示方式,下面简单的介绍几种: 1、 Calendar:.net自带的一种日期显示控件,唯一的缺陷就是每次对日历进行操作的时候都会造成回传, 所以效果不是很好 2、 js版的日历控件-My97...

    梦想论坛Ver3.0 FOR DVBBS7.2 超级梦想版

    10款短信提示声音(修改短信提示铃声) star.rar(修改等级图片) 文字秀(UBB方式) 跳楼插件 动网论坛短信无刷新提示 另几种标题醒目效果修改方法 社区私隐 提示框美化...

Global site tag (gtag.js) - Google Analytics