关于页面刷新,事件重复提交的方法分享

 更新时间:2012年10月11日 23:58:17   作者:  
在处理页面事件时,我们会经常会碰到这样的情况:当我们在提交一项页面表单时,在提交成功后,当我们试图按F5刷新页面时,数据会再次的被重复提交
浏览器的刷新是指重复上一次向服务器发送的请求,而asp.net的服务器控件的事件都是通过postback机制向服务器发送请求的。所以,当你点击提交按钮后再刷新,实际上是把提交按钮的postback请求又发送了一次。而asp.net应用服务器是无法区别这是正常点击按钮添加还是f5刷新添加(这涉及到页面生命周期。。。),那么这样就会导致在数据库里会存在n 条一模一样的数据。
在解决这个问题的过程中,尝试了一下几种方法:

(1)在事件提交后,将其中的参数置空,使得程序在执行过程中,因为没有参数而不会做业务处理。这种处理方法没有效果,因为服务器执行的是上一次请求的事件,事件提交后,改变参数没有任何意义。

(2)在事件提交后,将页面进行重定向到当前页面(Response.Redirect( "/basedata/PictureAdd.aspx" , true);)。因为每个页面都具有自己的生命周期,进行重定向后,即结束了当前页面操作。这种方法可行!

为什么在原Asp开发程序中不会碰到这样的问题呢?我觉得是因为Asp程序主要都是将表单提交给另外一个页面处理,并且,这个页面处理之后,将跳转到另外一个提示页面。那么在Asp程序中,只需要在回退时将页面设置为过期那么就可以有效的避免重复提交的问题。但是在Asp.Net中,基本上所有的操作都是基于事件操作,而事件的本质上就是页面自己提交给自己,并且页面无法识别提交时正常操作还是重复刷新。

相关文章

  • 将Git存储库克隆到本地IntelliJ IDEA项目中的详细教程

    将Git存储库克隆到本地IntelliJ IDEA项目中的详细教程

    这篇文章主要介绍了将Git存储库克隆到本地IntelliJ IDEA项目中的详细教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-10-10
  • 使用VScode写一个html页面

    使用VScode写一个html页面

    本文给大家分享的是使用vscode编写的第一个html页面的全过程,非常的简单,菜鸟看看就行,高手请略过
    2020-01-01
  • 15个开发者必须知道的chrome技巧

    15个开发者必须知道的chrome技巧

    这篇文章主要介绍了15个开发者必须知道的chrome技巧,需要的朋友可以参考下
    2017-09-09
  • 网站分站的实现方法

    网站分站的实现方法

    现在一般的行业门户网站为了业务的发展和网络推广,一般都会开通几个地区和子行业的分站。下面是一些解决思路,需要的朋友可以参考下。
    2010-06-06
  • 简单谈谈Git中的回滚操作

    简单谈谈Git中的回滚操作

    大家在日常开发中,经常会遇到需要将代码切回到之前的某个版本的情况,有可能是需要将代码回滚,也有可能需要查看之前的某个实现。遇到这样的情况,该怎么做呢?下面通过这篇文章来学习下Git中的回滚操作,有需要的可以参考借鉴。
    2016-09-09
  • IDEA配置leetcode插件的步骤

    IDEA配置leetcode插件的步骤

    这篇文章主要介绍了IDEA配置leetcode插件的步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • git中ssh key配置详解

    git中ssh key配置详解

    这篇文章主要介绍了git中ssh key配置详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • Sublime Text 4怎么安装使用

    Sublime Text 4怎么安装使用

    这篇文章主要介绍了Sublime Text 4怎么安装使用,下载对应的安装包,将该exe文件复制到对应的sublime text的安装目录下(与sublime_text.exe同级),右键管理员运行即可,需要的朋友跟随小编一起看看吧
    2022-01-01
  • Kali渗透测试之使用Metasploit对Web应用的攻击

    Kali渗透测试之使用Metasploit对Web应用的攻击

    这篇文章主要介绍了Kali渗透测试:使用Metasploit对Web应用的攻击,这种漏洞源于Web应用程序没有对用户输入的内容进行准确的验证,从而导致操作系统执行了攻击者输入的命令,需要的朋友可以参考下
    2022-05-05
  • git push 本地项目推送到远程分支的方法(git命令版)

    git push 本地项目推送到远程分支的方法(git命令版)

    这篇文章主要介绍了git push 本地项目推送到远程分支的方法(git命令版),需要的朋友可以参考下
    2020-09-09

最新评论