/// <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>"); } }