日期:2014-05-19  浏览次数:20390 次

如何截取本页的流,访问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中.

目前还没找到办法.

关注 期待其他方法

------解决方案--------------------
关注~