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