代码如下:
<form id="form1" runat="server">
<asp:RadioButtonList ID="rad" runat="server" AutoPostBack="true">
    <asp:ListItem Selected="True" Text="aaa"></asp:ListItem>
    <asp:ListItem Text="bbb"></asp:ListItem>
</asp:RadioButtonList>
<br />
<%=rad.SelectedItem.Text%>
</form>
在浏览器中打开页面,点击bbb,再点击浏览器的后退按钮,此时bbb处于选中状态,而下面的文字又是aaa
如果在点击后退的同时,恢复页面?这个问题可能造成用户不小心按了Backspace,还不自知,导致选项都变更了,再点提交

解决方案 »

  1.   

    用js来填充这个值<%=rad.SelectedItem.Text%>
      

  2.   

    通过禁用缓存可以解决这个问题,汗:
                Response.Buffer = true;
                Response.ExpiresAbsolute = DateTime.Now.AddDays(-1);
                Response.Cache.SetExpires(DateTime.Now.AddDays(-1));
                Response.Expires = 0;
                Response.CacheControl = "no-cache";
                Response.Cache.SetNoStore();
                
                // 添加Html的不缓存内容
                if (Header != null)
                {
                    /*
    <meta http-equiv="Expires" CONTENT="0"> 
    <meta http-equiv="Cache-Control" CONTENT="no-cache"> 
    <meta http-equiv="Pragma" CONTENT="no-cache"> */                HtmlMeta meta = new HtmlMeta {HttpEquiv = "Expires", Content = "0"};
                    Header.Controls.Add(meta);                meta = new HtmlMeta {HttpEquiv = "Cache-Control", Content = "no-cache"};
                    Header.Controls.Add(meta);                meta = new HtmlMeta {HttpEquiv = "Pragma", Content = "no-cache"};
                    Header.Controls.Add(meta);
                }
      

  3.   

    是的.再试下以下方法
    #region ClearCache()
        protected void ClearCache()
        {
            Response.Cache.SetCacheability(System.Web.HttpCacheability.NoCache);
            Response.Expires = 0;
            Response.Buffer = true;
            Response.ExpiresAbsolute = DateTime.Now.AddSeconds(-1);
            Response.AddHeader("pragma", "no-cache");
            Response.CacheControl = "no-cache";
        }
        #endregion
      

  4.   

    经过验证,IE或Firefox这一句代码就ok了:
    Response.CacheControl = "no-cache";但是Chrome还是不行
      

  5.   

    禁用缓存就没有后退功能了。。
    试下这个,Response.Cahce.SetNoStrore(),这个兼容各种浏览器 
      

  6.   

    Response.Cache.SetCacheability(HttpCacheability.NoCache);  
    Response.Expires = -1;  
    Response.AddHeader("pragma", "no-cache");  
    Response.AddHeader("cache-control", "no-cache");  
    Response.CacheControl = "no-cache";   
    Response.Cache.SetNoStore();  
    升级Chrome看看
      

  7.   

    用户选择了bbb后,是否还有另外的Button操作转到另外一个页面
    如果这样的话,可以把用户的选择存入数据库然后在每次进入bbb所在的页面时Load数据库中的值,这样就可以显示用户上一次选择的值。