自己一直无法解决的问题,就是如何得到aspx执行后产生的HTML代码,也就是想得到一个ASPX文件执行成功后输出到客户端的HTML标签,想在当前的ASPX中得到这些HTML代码请大家帮忙解决一下,到现在为止,还没解决,找了还有找了现在的WEB FORM中的事件,就是没办法,得到最后ASPX执行成功后产生的最终HTML代码,望大家帮忙解决一下,先谢了thank you!!!!!

解决方案 »

  1.   

    webBrowser 类直接请求.aspx页面返回的就是html
      

  2.   

    使用HttpServerUtility.Execute 方法:System.Text.StringBuilder sb = new StringBuilder();
    Server.Execute("YourPage.aspx", new Syste.IO.StringWriter(sb));
    这样网页的执行结果(HTML代码)都在sb里面
    再使用System.IO.StreamWriter将SB中的字串写入文件中即可。
      

  3.   

    哦。忘了再提一句。
    Server.Execute("YourPage.aspx", new Syste.IO.StringWriter(sb));
    这里的YourPage.aspx,不能是本页面。否则有问题。
      

  4.   

    GetURLHtml.aspx<%@ Page language="c#" Codebehind="GetURLHtml.aspx.cs" Src="GetURLHtml.aspx.cs" AutoEventWireup="false" Inherits="Lion.Web.Forum.WebForm1" %>
    <HTML>
     <HEAD>
      <title>Lion互动网络=>利用WebClient和WebRequest类获得网页源代码</title>
      <META http-equiv="Content-Type" content="text/html; charset=gb2312">
     </HEAD>
     <body>
      <form runat="server">
       <asp:TextBox id="UrlText" runat="server" Width="50%">http://www.lionsky.net/mywebsite/index.aspx</asp:TextBox>
       <asp:Button id="Button1" runat="server" Text="用WebClient得到"></asp:Button>&nbsp;
       <asp:Button id="Button2" runat="server" Text="用WebRequest得到"></asp:Button><BR>
       <asp:TextBox id="ContentHtml" runat="server" Width="100%" Height="360px" TextMode="MultiLine"></asp:TextBox>
      </form>
     </body>
    </HTML>
      

  5.   

    GetURLHtml.aspx.Csusing System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Web;
    using System.Web.SessionState;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;namespace Lion.Web.Forum
    {
     /// <summary>
     /// WebForm1 的摘要说明。
     /// </summary>
     public class WebForm1 : System.Web.UI.Page
     {
      protected System.Web.UI.WebControls.TextBox TextBox1;
      protected System.Web.UI.WebControls.Button Button1;
      protected System.Web.UI.WebControls.Button Button2;
      protected System.Web.UI.WebControls.TextBox UrlText;
      protected System.Web.UI.WebControls.TextBox ContentHtml;
      protected System.Web.UI.WebControls.TextBox TextBox2;
     
      #region Web 窗体设计器生成的代码
      override protected void OnInit(EventArgs e)
      {
       //
       // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
       //
       InitializeComponent();
       base.OnInit(e);
      }
      
      /// <summary>
      /// 设计器支持所需的方法 - 不要使用代码编辑器修改
      /// 此方法的内容。
      /// </summary>
      private void InitializeComponent()
      {    
       this.Button1.Click += new System.EventHandler(this.Button1_Click);
       this.Button2.Click += new System.EventHandler(this.Button2_Click);  }
      #endregion  private void Button1_Click(object sender, System.EventArgs e)
      {
       string PageUrl = UrlText.Text;
       System.Net.WebClient wc = new System.Net.WebClient();
       wc.Credentials = System.Net.CredentialCache.DefaultCredentials;   ///方法一:
       Byte[] pageData = wc.DownloadData(PageUrl);
       ContentHtml.Text = System.Text.Encoding.Default.GetString(pageData);   /// 方法二:
       /// ***************代码开始**********
       /// Stream resStream = wc.OpenRead(PageUrl);
       /// StreamReader sr = new StreamReader(resStream,System.Text.Encoding.Default);
       /// ContentHtml.Text = sr.ReadToEnd();
       /// resStream.Close();
       /// **************代码结束********
       /// 
       wc.Dispose();    }  private void Button2_Click(object sender, System.EventArgs e)
      {
       string PageUrl = UrlText.Text;
       System.Net.WebRequest  request = System.Net.WebRequest.Create(PageUrl);
       System.Net.WebResponse response = request.GetResponse();
       System.IO.Stream resStream = response.GetResponseStream(); 
       System.IO.StreamReader sr = new System.IO.StreamReader(resStream, System.Text.Encoding.Default);
       ContentHtml.Text = sr.ReadToEnd();
       resStream.Close(); 
       sr.Close();  }
     }
    }