我做了两个页面:
A,读取D盘上的一个TXT文件,显示在Label上面.
B,空页面.
A上有个连接,连到B上.
____________________________________________________________________________________________________________A页面的PageLoad写了下面的代码,控制缓存失效时间.Response.Cache.SetExpires(DateTime.Now.AddMinutes(1));
Response.Cache.SetCacheability(HttpCacheability.Public);
Response.Cache.SetValidUntilExpires(true);____________________________________________________________________________________________________________测试过程:
我先打开A页面,显示了TXT得内容"123",然后打开D盘上面的TXT文件,将内容改为"123123",
接着点击A上面的连接到B,等待一分钟后,从B页面按Back返回,A页面上显示的竟然还是"123"!!!!!!.

解决方案 »

  1.   

    加上if(!isPostback)
    {
    Response.Cache.SetExpires(DateTime.Now.AddMinutes(1));
    Response.Cache.SetCacheability(HttpCacheability.Public);
    Response.Cache.SetValidUntilExpires(true);
    }试试
      

  2.   

    2楼的兄弟,放到!IsPostBack里也没用啊.
      

  3.   

    每次页面加载的时候你都会把cache的超时时间设置成了现在时间加上1分钟,显然这样无论如何也不会超时.
      

  4.   

    TO 4楼的兄弟:
       我是按IE上面的Back键回退的,如果有缓存的话,不会走PageLoad,如果没有缓存或者缓存过期的话,只要是走PageLoad,就可以读到TXT的内容的啊,修改的内容就应该显示了~~~~
      

  5.   

    做个缓存依赖就解决了private static CacheDependency mydepen;protected void Page_Load(object sender, EventArgs e){    if (!IsPostBack)    {        //创建XML数据源        DataSet myds = new DataSet();        //数据源来自文件data.xml        myds.ReadXml(this.MapPath(Request.ApplicationPath + @"/data.xml"));        //判断是否存在缓存         if (Cache["BOOKS"] == null)        {            //创建缓存依赖           mydepen = new CacheDependency(this.MapPath(Request.ApplicationPath                + @"/data.xml"));            //添加缓存项            Cache.Add("BOOKS", myds, mydepen, DateTime.Now.AddSeconds(10), TimeSpan.Zero,                CacheItemPriority.Normal, null);        }    }}