可以把这段代码放在page-load前面
第一种方法:重写Render方法,生成静态文件
protected override void Render(HtmlTextWriter writer)//

...{
StringWriter html = new StringWriter();
HtmlTextWriter tw = new HtmlTextWriter(html);
base.Render(tw);
StreamWriter sw = new StreamWriter(Server.MapPath("default.html"), false, System.Text.Encoding.Default);
sw.Write(html.ToString());
sw.Close();
tw.Close();
Response.Write(html.ToString());
}
将生成相应网页的静态页面,不过必须先调试一下才能生成default.html,生成不同的可更改 ....html,我就比较用这种
第二种方法:利用WebClient类实现

/**//// <summary>
/// 得到指定url的源代码,放到指定的路径下
/// </summary>
/// <param name="strURL">url地址</param>
/// <param name="strDesPath">生成html文件目标路径</param>
private void getHTML(string strURL, string strDesPath)

...{
WebRequest request = WebRequest.Create(strURL);
WebResponse response = request.GetResponse();
Stream resStream = response.GetResponseStream();
StreamReader sr = new StreamReader(resStream);
StreamWriter sw = new StreamWriter(strDesPath, false, System.Text.Encoding.Default);
sw.Write(sr.ReadToEnd());
resStream.Close();
sr.Close();
sw.Close();
}
利用第二种方法。写个windows服务程序,开机自动运行,每隔指定时间自动生成首页。这样就可以实现动态首页的定时静态更新了,而且完全自动不必手工处理。
第三种方法:

/**//// <summary>
/// 静态生成页面的方法
/// </summary>
/// <param name='strPageUrl'>生成源</param>
/// <param name='strFileName'>生成到</param>
private bool MakePage(string strPageUrl, string strFileName)

...{
string strDir, strFilePage;
strDir = @"/htm/MakePage/";//更新到的文件夹
strFilePage = Server.MapPath(strDir + strFileName);

StreamWriter sw = null;
//获得aspx的静态html
try

...{
if (!Directory.Exists(Server.MapPath(strDir)))

...{
Directory.CreateDirectory(Server.MapPath(strDir));
}
if (File.Exists(strFilePage))

...{
File.Delete(strFilePage);
}
sw = new StreamWriter(strFilePage, false, System.Text.Encoding.GetEncoding("GB2312"));
Server.Execute(strPageUrl, sw);
}
catch (Exception ex)

...{
return false;//生成到出错
}
finally

...{
sw.Flush();
sw.Close();
sw = null;
}
return true;
}
第四种方法:

/**//**//**//// <summary>
/// 静态生成页面的方法
/// </summary>
/// <param name='strPageUrl'>生成源</param>
/// <param name='strFileName'>生成到</param>
private bool MakePage(string strPageUrl,string strFileName)

...{
string strDir,strFilePage;
strDir = @'/htm/MakePage/';//更新到的文件夹
strFilePage = Server.MapPath(strDir+strFileName);

StreamWriter sw=null;
//获得aspx的静态html
try

...{
if (!Directory.Exists(Server.MapPath(strDir)))

...{
Directory.CreateDirectory(Server.MapPath(strDir));
}
if(File.Exists(strFilePage))

...{
File.Delete(strFilePage);
}
sw = new StreamWriter(strFilePage, false, System.Text.Encoding.GetEncoding('GB2312'));
Server.Execute(strPageUrl,sw);
}
catch(Exception ex)

...{
msg.ShowMsg('''+strFileName+''生成出错:'+ex.Message);
return false;//生成到出错
}
finally

...{
sw.Flush();
sw.Close();
sw = null;
}

return true;
}