如何截取本页的流,访问a.aspx的同时在服务器上生成一个静态a.htm?
如何截取本页的流,访问a.aspx的同时在服务器上生成一个a.htm?
尽量不考虑另外stream = (HttpWebRequest)WebRequest.Create(url).GetResponse().GetResponseStream();这样的办法,这样相当于访问了两次。
我是想用一个比较省事的办法生成静态文件,只修改BasePage类就可以达到全站所有静态缓存的目的,在a.aspx的preInit事件里判断有无a.htm,如果有就跳过去,如果没有,就Response a.aspx的同时生成一个a.htm,下次其他人就可以跳到a.htm了。
和CSDN帖子的静态思路是基本一样的。只是想更省事些,不想两次request。
注:不考虑特殊用户逻辑的情况。
------解决方案--------------------孟子写了一个,你去看看
------解决方案--------------------狼兄的帖子一定要顶!
------解决方案--------------------protected override void OnPreRenderComplete(EventArgs e)
{
base.OnPreRenderComplete(e);
System.IO.StringWriter sw = new StringWriter();
HtmlTextWriter htw = new HtmlTextWriter(sw);
foreach (Control c in this.Controls)
{
if (c is HtmlForm)
{
foreach (Control c1 in c.Controls)
{
c1.RenderControl(htw);
}
}
else
c.RenderControl(htw);
}
Response.Write(sw.ToString());
}
------解决方案--------------------
------解决方案--------------------关注下,顺祝各位51快乐~
------解决方案--------------------http://www.cnblogs.com/kanshangren/articles/3959.html
------解决方案--------------------幕白兄 的方法
感觉可行
但是 测试发现
在页面有 linkbutton时候 会出现 异常.
提示 控件 不在 有 runat=server 的form中.
目前还没找到办法.
关注 期待其他方法
------解决方案--------------------关注~