c# 生成静态页面

 /// <summary>
     /// AspxToHtml 的摘要说明。
     /// </summary>
     public class AspxToHtml
     {
         /// <summary>
         /// Aspx文件url
         /// </summary>
         public string strUrl;
         /// <summary>
         /// 生成html文件的保存路径
         /// </summary>
         public string strSavePath;
         /// <summary>
         /// 生成html文件的文件名
         /// </summary>
         public string strSaveFile;

         public AspxToHtml()
         {
              //
              // TODO: 在此处添加构造函数逻辑
              //
         }
         /// <summary>
         /// 将strUrl放到strSavePath目录下,保存为strSaveFile
         /// </summary>
         /// <returns>是否成功</returns>
         public void ExecAspxToHtml()
         {
              try
              {
                   StringWriter strHTML = new StringWriter();
                   System.Web.UI.Page myPage = new Page();   //System.Web.UI.Page中有个Server对象,我们要利用一下它
                   myPage.Server.Execute(strUrl,strHTML);    //将asp_net.aspx将在客户段显示的html内容读到了strHTML中
                   StreamWriter sw = new StreamWriter(strSavePath+"/"+strSaveFile, false, System.Text.Encoding.GetEncoding("UTF-8"));
                  //新建一个文件Test.htm,文件格式为GB2312
                   sw.Write(strHTML.ToString());            
                  //将strHTML中的字符写到Test.htm中
                   strHTML.Close();                        
                  //关闭StringWriter 
                   sw.Close();                                    
                  //关闭StreamWriter 
              }
              catch(Exception err)
              {
                  throw err;
              }
         }

页面代码:

 protected void Page_Load(object sender, EventArgs e)
        {
            scjtym.ServerClick += new EventHandler(scjtym_ServerClick);
        }

        void scjtym_ServerClick(object sender, EventArgs e)
        {
            try
            {
                AspxToHtml a = new AspxToHtml();
                a.strSaveFile = "index.html";
                a.strSavePath = Request.PhysicalPath.Substring(0, Request.PhysicalPath.LastIndexOf("\"));
                a.strUrl = "/index.aspx";
                a.ExecAspxToHtml();
                Response.Write("<script type='text/javascript'>alert('生成成功!');window.open('/', '_blank');</script>");
            }
            catch (Exception err)
            {
                Response.Write("<script type='text/javascript'>alert('" + err.Message + "');</script>");
            }
            
        }
原文地址:https://www.cnblogs.com/gs21Joan/p/3890039.html