1.在源页面(ori.aspx)中写好一超链<a href="staticpage.aspx?id=<%#Eval("Id")%>"请求页面</a>
2.在请求页面的statcipage.aspx.cs中定这样一段代码
protected override void Render(HtmlTextWriter writer)
{
string staticFile = "static/" + Request["bId"] + ".html";
bool b = File.Exists(Server.MapPath(staticFile));
if (!File.Exists(Server.MapPath(staticFile)))
{
StringWriter html = new StringWriter();
HtmlTextWriter tw = new HtmlTextWriter(html);
base.Render(tw); //关键
StreamWriter sw = new StreamWriter(Server.MapPath(staticFile), false, Encoding.Default);
sw.Write(html.ToString());
sw.Close();
tw.Close();
}
Response.Redirect(staticFile);
}
3.在从源页面第一次请求id=1的页面时,会在目标页面先执行所有的代码,最后根据Render()将动态页面转换成静态页面
如果,第二次请求id=1的页面时,将不会执行原有的代码 Render()将直接将请求定向到第一次请求生成的静态页面
注:学习总结,欢迎批评批证