代码之家  ›  专栏  ›  技术社区  ›  Razor

进行基础连接时,ASP.NET页加载两次

  •  1
  • Razor  · 技术社区  · 16 年前

    我有一个ASPX页面,当我输入该页面的URL时,它似乎加载了两次。

    在这个页面的加载事件中,我正在连接到服务器以检索文档,然后将下载的字节输出到页面的输出流。

    这导致页面出于某种奇怪的原因加载两次。如果我硬编码一个字节数组而不进行此连接,那么页面将加载一次,并且一切正常。

    以下是用于检索外部文档的方法。也许你能看到我看不到的东西。

    public static byte[] GetDocument(string url)
            {
                HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest.Create(url);
                HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();
                Stream stream = myHttpWebResponse.GetResponseStream();
    
                byte[] _Data = StreamToBytes(stream);
    
                return _Data;
            }
    
            private static byte[] StreamToBytes(System.IO.Stream theStream)
            {
                if (theStream == null)
                    throw new ArgumentException("URL null.");
    
                int bytesRead = 0;
                byte[] buffer = new byte[8096];
                MemoryStream bufferStream = new MemoryStream();
    
                try
                {
                    do
                    {
                        bytesRead = theStream.Read(buffer, 0, 8096);
                        bufferStream.Write(buffer, 0, bytesRead);
    
                    } while (bytesRead > 0);
    
                }
                finally
                {
                    bufferStream.Flush();
                    theStream.Close();
                    theStream.Dispose();
                }
    
                return bufferStream.ToArray();
            }
    
    2 回复  |  直到 12 年前
        1
  •  3
  •   Robert Paulson    16 年前

    可能的罪魁祸首是 autoeventwireup=“真” 除了OnInit()具有此.page_load+=page_load;

    “自动事件连线”执行听起来像的操作。如果有遵循命名约定的方法,则事件将自动连接起来。

    您也经常在按钮处理程序上看到这一点。按钮处理程序将被专门设置,如果名称遵循约定,页面还将创建一个按钮处理程序。 钮名 _ onclick(发送方,参数)

        2
  •  2
  •   Thomas Hansen    16 年前

    这类问题通常是由于img标签中包含空的src…