小弟最近写了个ASP.NET的页面 但是有些问题 
具体是这样的在页面的左边有个DIV 里面是是文章的分类链接
有面试文章的正文 在左边是去数据库读的内容 其中有一个是
分类的傅分类的图片地址 因为暂时数据库里面还没加 所以读出来里面是 null
然后写的时候照样子写成HTML了 问题就出在这里 之前都没觉察出什么问题 在文章显示的时候就遇到问题了 因为一般文章都有个访问次数之类的 每次浏览次数+1;
写了这个函数后就发现问题了 浏览次数每次+了2然后自己手动跟踪 发现页面的所有代码均被执行了两次 就像 客服端发了两次访问请求似的.
之后 我在类里面定义了个bool变量 初始 置为false;
执行一次后变为true; 等到第二次执行时他自己有事false了;后来同学他就把代码一段一段的注释掉
发现 可能是 一句responce导致的问题
            string SqlString2 = "SELECT Cate_Pic_Url FROM Category WHERE Cate_Id="
                + Data_Set1.Tables[0].Rows[0]["Cate_Parent"].ToString();            DataSet Data_Set2 = SqlHelper.ExecuteSelectSql(SqlString2);            if (Data_Set2.Tables[0].Rows.Count > 0)
            {
                Response.Write(string.Format("<img class=\"icon\" src=\"{0}\" />\n",
                    Data_Set2.Tables[0].Rows[0]["Cate_Pic_Url"].ToString()));就是那句responce 如果responce李卖弄的string.Format的 第二个参数是 非空 或者非全空格的话 就只加载一次否则页面讲被加载两次不知何故.球解答.

解决方案 »

  1.   

    是啊,在页面里放入一个Image控件嘛,卖弄html干什么呢?
      

  2.   

    Image.ImageUrl
    if(!IsPostBack)
    {}
      

  3.   

    那就不用response.write的呗,换种方式来表达嘛
      

  4.   

    你page_load事件里有没有判断ispostback?
    还有,你上面的代码是放在哪里的?服务器端控件的事件里吗?response.write会导致页面回发,page_load里代码执行两次不奇怪啊。。
      

  5.   

    在Page_Load事件里面加上IsPostBack判断下是否是Response.Write()方法引起的回发,确定是它引起的话,可以换一种方式来解决。
      

  6.   


    Page_Load()
    {
        if(!IsPostBack)
          {
          }
    }
      

  7.   

    if(!IsPostBack)
    {}
    有问题?
      

  8.   


    请问response.write会导致页面回发 这是为什么?能否解释下?
      

  9.   

    说明下 不是postback 
    测试过的不能用if(!Page.IsPostBack)区别
    感觉就是两次不同的访问页面操作  我回去再试一试
      

  10.   

    1.response.write不会导致页面回发2.你检查看看是不是文件列表加载的时候又加载了一次正文
      

  11.   

    你不要用字符串拼接,安全性低,你可以设参来做, "SELECT Cate_Pic_Url FROM Category WHERE Cate_Id=@id "
    list<sqlp....> st=new list<sqlp....>();               
      

  12.   

    我跟踪的时候 发现时 正文 就是.aspx文件 被加载了两次
    文件列表 是 ???