当前位置:  编程技术>.net/c#/asp.net

asp.net防止刷新重复提交的方法与代码

    来源: 互联网  发布时间:2014-08-30

    本文导语:  asp.net防止页面刷新与重复提交,即要禁止F5按钮的刷新功能,又要禁止IE工具栏上的刷新,说起来容易,实现起来可不简单。 本文提供二个实例代码,供大家学习参考。 例1, private bool pageRefreshed = false; //页面是否刷新提交 p...

asp.net防止页面刷新与重复提交,即要禁止F5按钮的刷新功能,又要禁止IE工具栏上的刷新,说起来容易,实现起来可不简单。
本文提供二个实例代码,供大家学习参考。

例1,

private bool pageRefreshed = false; //页面是否刷新提交
private bool refreshState = false;  //ViewState中暂存的状态
//然后重写Page的LoadViewState与SaveViewState方法:
protected override void LoadViewState(object savedState)
{
    object[] states = (object[])savedState;
    base.LoadViewState(states[0]);
    refreshState = (bool)states[1];
    if(Session["__PAGE_REFRESHED"] == null)
        pageRefreshed = false;
    else
        pageRefreshed = refreshState != (bool)Session["__PAGE_REFRESHED"];
}

protected override object SaveViewState()
{
    Session["__PAGE_REFRESHED"] = !refreshState;
    object[] states = new object[2];
    states[0] = base.SaveViewState();
    states[1] = !refreshState;
    return states;
}
private void Button1_Click(object sender, EventArgs e)
{
 if (pageRefreshed )
{
   label.Text="this is refreshed function";
}
else
{
  label.Text="this is new request function";
}
}

这种方法虽然能够实现,但是在某些请款下不适应。如果画面上同时存在文本框和按钮式,设置按钮的autopostback="True"时,在修改完文本框的值,直接点击按钮(在文本框没有失去焦点时,直接点击按钮),这时的执行顺序是textchanged→textchanged→buttonclick,在第一次textchanged时,就把状态已经变成了true,按钮的不能执行。

例2,
原文地址:http://www.codeproject.com/Articles/18841/Refresh-Module
这种方式可以准确的判断是否是通过浏览器的刷新按钮进行的请求,使用也很简单,值得推荐。

1.引用dll,修改配置文件
在配置文件中添加modules


    
        
    

wbapplication的情况下需要改成在system.webServer的modules的节点下追加modules

2.定义刷新时的行为
RefereshHelper.IsPageRefreshed这个参数就是用来判断是否是通过浏览器的书刷新按钮进行的请求。
其他的行为行为控制参照原文。

建议采用第二种方式,简单直观,希望本文提供的方法,对大家在防止页面重复提交方面有所帮助。


    
 
 

您可能感兴趣的文章:

  • 我用asp.net做一个聊天室,各位有没有好的页面刷新办法?
  • asp.net Timer无刷新定时器的例子
  • 我用asp.net做一个聊天室,要求在一个帧里点击按钮,立即刷新另外一帧,怎么做?
  • asp.net防止页面刷新重复提交的代码
  • Asp.net弹出窗口同时防止刷新重复提交的方法
  • asp.net 防止刷新重复提交的代码(禁用工具栏刷新按钮 变灰)
  • Asp.net防止后退、刷新重复提交的方法
  • c# UpdatePanel无刷新上传图片 asp.net无刷新上传
  • Asp.net防刷新重复提交与防后退的方法
  • asp.net页面刷新后字体等变大问题的解决方法
  • asp.net防止刷新页面重复提交表单原理与实例
  • 如何解决 asp.net 点击验证码不刷新的问题
  • c#(asp.net)防止刷新重复提交数据的解决方法
  • ASP.NET 验证码与刷新验证码的例子
  • asp.net刷新页面的几种方法
  • ASP.NET防止页面刷新的两种解决方法小结
  • asp.net 页面刷新多种方法详解(附实例)
  • asp.net+jquery无刷新三级联动的代码举例
  • asp.net 无刷新分页的例子
  • asp.net中利用Jquery+Ajax+Json实现无刷新分页的实例代码
  • Asp.net防止重复提交的实现方法
  • asp.net防止页面重复提交(示例)
  • 如何在ASP的frame框架中屏蔽右键,以防止查看页面的源代码?
  • asp.net页面防止重复提交示例分享
  • asp.net防止后退与重复提交表单的简单方法
  • asp.net防止重复提交(禁用按钮)的方法介绍
  • asp.net 多次提交的防止方法
  • ASP.NET会员注册登录模块(MD5加密,防止SQL注入,判断是否注册)
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • asp.net禁止重复提交示例代码
  • asp.net Textbox控件注册回车事件与触发按钮提交事件的实现方法
  • php 模拟 asp.net webFrom 按钮提交事件的思路及代码
  • asp.net点击按钮后禁用提交的代码
  • Asp.Net模拟表单提交数据和上传文件的实现代码
  • ASP.NET之 Ajax相关知识介绍及组件图
  • 我想了解一些关于Java怎样与Asp或Asp.net结合方面在未来发展方向的问题?
  • c#/ASP.NET操作cookie(读写)代码示例
  • asp.net UrlEncode对应asp urlencode的处理方法
  • asp.net实例 定义和使用asp:AccessDataSource
  • win2008 r2 服务器环境配置(FTP/ASP/ASP.Net/PHP)
  • asp与asp.net的session共享
  • 如何在unix下发布asp?
  • 怎么让Apache支持Asp?
  • ??谁能把ASP代码改为JSP的
  • Linux平台下哪种方法实现ASP好?
  • ASP和ASP.Net共享Session解决办法
  • 通过socket和asp打交道
  • 犹豫中……,到底是选择ASP,还是JSP?
  • asp 是否 可用applet标签?帮忙!!
  • asp.net判断数据库表是否存在 asp.net修改表名的方法
  • 新人提问:asp+access的程序在linux下怎么改?
  • 用JAVA APPLET做的交互式网页和ASP、PHP做的相比有什么优势呢?
  • asp.net文字水印功能简单代码
  • asp里面可否使用java写的邮件,给30分.
  • asp与Jsp可否在iis中共存的问题


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3