• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

用一个最简单方法解决asp.net页面刷新导致数据的重复提交

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

    页面刷新导致数据重复提交这个问题困扰我也很久了,在网上搜了一个大家把解决的办法多聚焦在了如何判定是刷新还是正常提交上了。这个方法通过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();
        }

    }

 

 

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Asp.Net中CS中获取物理路径发布时间:2022-07-10
下一篇:
ASP.net中Panel控件用法发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap