也就是说我Page_Load里面有个方法 但是如果我第一次打开是正常的  但是关掉浏览器 在一次打开 这个值却是上一次的值 必须刷新下才会显示当前值   protected void Page_Load(object sender, EventArgs e)
    {
        Random ro = new Random();
        this.Img.Src = "../Img.aspx?flag=" + ro.Next(100);
    }

解决方案 »

  1.   

    通常Page_Load的内容都是要放在if (!IsPostBack){}中的,这表示首次加载或者刷新时加载。否则就是页面回发引起的Page_Load。
      

  2.   

    if(!Page.IsPostBack)
    {
       就第一次加载时执行一次!
    }
      

  3.   

    对于楼主:我只能是,我试了3次,关掉显示器然后再打开,flag都是不同的。<%@ Page Language="C#" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <script runat="server">    protected void Page_Load(object sender, EventArgs e)
        {
            Random ro = new Random();
            this.Img.Src = "../Img.aspx?flag=" + ro.Next(100);
        }</script>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
        <img alt="" src="" runat="server" id="Img" />
        </form>
    </body>
    </html>
    我为什么会遗憾呢?是对盲目照抄而过于不求甚解感到遗憾和缺憾,这样我们就不能找到可招聘的asp.net程序员了。
      

  4.   

    千万,从理解lz的代码,从找到内部的自相矛盾入手来读代码。千万不要因为看了某个人的代码,于是就认为只有照抄他的某个语句的写法才是真理,一定要理解为什么要写if(!IsPostback)判断。
      

  5.   


    ASP.NET清除页面缓存    (1)   Response.Buffer = true;
                Response.ExpiresAbsolute = System.DateTime.Now.AddSeconds(-1);
                Response.Expires = 0;
                Response.CacheControl = "no-cache";
                Response.AddHeader("Pragma", "No-Cache");
        (2) HTML方法
            <HEAD>
            <META HTTP-EQUIV="Pragma" CONTENT="no-cache">
            <META HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
            <META HTTP-EQUIV="Expires" CONTENT="0">
            </HEAD>    (3) 重新调用原页面的时候在给页面传一个参数:    href="****.ASPX?random()"
    1。 取消缓存
    (2)客户端取消<html> 
    <head> 
    <meta http-equiv="Expires" CONTENT="0"> 
    <meta http-equiv="Cache-Control" CONTENT="no-cache"> 
    <meta http-equiv="Pragma" CONTENT="no-cache"> 
    </head>(3)服务器具端取消:服务器端:
        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();Global里面: 
    protected void Application_BeginRequest(Object sender, EventArgs e) 

           HttpContext.Current.Response.Cache.SetNoStore(); 
    }
    <%@ OutPutCache Location="None"%>页面基类:
    public class PageBase : Page 

         public PageBase() {}      protected override OnLoad( EventArgs e ) { 
                 Response.Cache.SetNoStore(); 
                 base.OnLoad(); 
         } 
    } 最简单的办法 :-)
    学CSDN的这个论坛,在URL后面随机的加一些没用的参数,比如:
    http://xxx/xxx/xxx.jpg?p=xxxIE是用过URL来控制缓存的,这样就解决了(4)web.config可以设置吧?2。(1)客户端缓存和我们常在代码中使用的Cache对象,有什么差别,当我们仅用了客户端缓存时,他对我们在代码中使用的Cache有没有什么影响!两个完全不同的东西,Cache对象是给你自己缓存东西用的,好处是会自动清理掉过期的东西。客户端缓存是HTTP的一个规范,用于在客户端缓存网页的,有时候我们需要客户端缓存提高浏览速度,减轻服务器负担,但有时候我们又需要在客户端禁用缓存,以避免客户端看到过期的信息(2)当客户端浏览器被关闭时,要如何移除Cache中的值。当用户是正常注销是可以做到,但是如果用户是直接关闭浏览器要如何实现呢?<body onbeforeunload="window.open('clear.aspx','','top=4000')">(3)1.Page.Cache,Context.Cache,HttpRuntime.Cache是否引用同一个Cache对象.        2.它们之间的区别是什么?         3.它们的使用场合是什么?它们指的同一个对象,在某个请求其间,Page.Cache和HttpContext.Current.Cache是有效的,至于这2者的区别,一般是由你调用的地方决定的,如果在Page里,那么用Page.Cache,如果在global.asax或自己的函数里,那么用后者但如果你需要在某个事件,譬如基于Timer的处理函数里访问,因为其时没有HttpContext,那么用HttpRuntime.Cache
      

  6.   

    lz的问题就是问它写的那个代码应该每一次falg都取100以内的一个随机数,这是用实际代码来说明问题的。跟if(!IsPostback)有五毛钱关系吗?
      

  7.   


    我也没有出现。使用实际的程序测试,这可以断定,程序没有问题。而且asp.net根本不会自己去设置客户端缓存,所以asp.net系统也没有问题。
      

  8.   

    跟if(!IsPostback)没一点关系的哇,就是不懂LZ为什么会出现那种情况,想了解下
      

  9.   

    可能只能去怀疑lz手工设置过浏览器的参数,它的浏览器的参数被改动成强制缓存的了(默认情况下所有浏览器最多只会去服务器端使用if_modify的http头信息来查询缓存,而不会强制缓存)。但是,如果手工设置为直接强制使用客户端缓存,那么lz的浏览器访问许多网站就应该都有这个看不到最新页面的毛病,除非lz很少上网才会没有发现。
      

  10.   

    浏览器缓存了,这个现象很常见。解决办法是清空浏览器缓存。当然,也要看不同的机子,有的机子就算是清空浏览器缓存也不行。清空浏览器缓存的方法:
    浏览器--工具--internet选项--删除文件(复选框里德勾也要选)--确定。注意,有的浏览器,好像这样做也不行。只有换换浏览器了。