当前位置:   article > 正文

防止页面刷新重新提交

页面刷新后 radbutton会再次提交
整个过程说明:
1.在页面加载以后,会为这个页面产生一个GUID值,假设为GUID1,对于每一次从服务器传过来的页面来说,这个值是永远不会重复的.
2.当点击按钮或其它,使页面的表单提交给服务器处理以后,会产生一个新的页面,也产生了一个新的GUID值,假设为GUID2
3.当刷新页面的时候,提交表单所在页面的GUID值,仍为GUID1,通过判断所传来页面的GUID值与Session中的GUID值想比较,即可防刷新.
准备:
// 用于得到Session里所存的令牌值
public   string  GetToken()
    {
        
if  ( null   !=  Session[ " Token " ])
        {
            
return  Session[ " Token " ].ToString();
        }
        
else
        {
            
return   string .Empty;
        }
    }

// 用于产生令牌值,每一次产生的值是永远都不会重复的

    
private   void  SetToken()
    {
        Session.Add(
" Token " , UserMd5(Session.SessionID  +  DateTime.Now.Ticks.ToString()));
    }

    
protected   string  UserMd5( string  str1)
    {
        
return  MD5.md5str(str1);

    }
第一步:
// 插入一个隐藏的控件,相当于为每一个页面给加了个GUID,对于每一个从服务器传来的页面,这个值是不同的,这个值永远与Session中的值相同.
     < input id = " hiddenTest "  type = " hidden "  value = " <%= GetToken() %> "  name = " hiddenTestN " />
第二步:
         // 在page_load事件中,加入以下代码,用于在第一次产生GUID
         if  ( null   ==  Session[ " Token " ])
        {
            SetToken();
        }
第三步:
// 在要防刷新的地方写上:

                
if  ( ! Request.Form.Get( " hiddenTestN " ).Equals(GetToken()))
                {
                    
return ;
                }
                SetToken();
                
// ***********

转载于:https://www.cnblogs.com/ForFreeDom/archive/2009/09/12/1565417.html

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/234464
推荐阅读
相关标签
  

闽ICP备14008679号