zoukankan      html  css  js  c++  java
  • 用一个最简单方法解决asp.net页面刷新导致数据的重复提交

        页面刷新导致数据重复提交这个问题困扰我也很久了,在网上搜了一个大家把解决的办法多聚焦在了如何判定是刷新还是正常提交上了。这个方法通过Session放一些识别数据也可以解决问题。

        这里我只是想提供另外一个思路,不是完美解决重复提交,仅供博友们参考。

        “GET”与“POST”想必大家已经了解很多了,也只有在post时,才会担心刷新致使重复提交。自从asp.net出世,受winform的影响,大家肯定大量的烂用postback。我觉得,大部分展现数据时还是用get,大不了多加几个querystring,只有在执行数据操作时才用post, 一量数据提交完毕之后,立即切换成get方式,这样用户都没有机会使用刷新重复提交数据。当然,这只是我的尝试,欢迎大家提出反对意见。

          每次执行完一次事件,立即调用Reload,用GET方法重新查看已经提交数据。当然,如果这个提交的过程很久,其间用户点了刷新,这段代码就无能为力了。

          (根据博友提醒,代码作了小修改)


        
    protected void Button1_Click(object sender, EventArgs e)
        {
            count
    ++;
            
    this.Button1.Text = count.ToString();
            Reload(
    "run success!");
        }

        
    private void Reload(string message)
        {
            
    string script = "<script>alert(\"{0}\");window.location.href=\"{0}\";</script>";
            
    string outstring;

            
    if (string.IsNullOrEmpty(message))
            {
                Response.Redirect(
    this.Request.Url.OriginalString);
            }
            
    else
            {
                outstring 
    = string.Format(script, message, this.Request.Url.OriginalString);
            Response.Write(outstring);
            Response.End();
            }

        }
  • 相关阅读:
    12个JavaScript MVC框架评估 简单
    chrome developer tool 调试技巧 简单
    转CSS3线性渐变 简单
    base64:URL背景图片与web页面性能优化 简单
    转linux下apache安装gzip压缩 简单
    转思考什么时候使用Canvas 和SVG 简单
    转周报的逻辑 简单
    浏览器三种刷新方式采取的不同缓存机制 简单
    poj 1308 Is It A Tree? (并查集)
    poj 2912 Rochambeau (并查集+枚举)
  • 原文地址:https://www.cnblogs.com/gateluck/p/postback.html
Copyright © 2011-2022 走看看