注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

共享圈

www.gxquan.com的同步博客,保存高质量文章之用

 
 
 

日志

 
 

ASP.NET生成静态页面原理   

2012-10-30 15:33:05|  分类: ASP.NET WEB |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
每一个.aspx文件都继承了System.Web.Ui.Page类,这个类中的Render()方法每次都在aspx.cs文件执行完毕后,将用户请求.aspx文件直接转换成可以被浏览器读懂的html,然后将转译好的内容展示给用户。
如果我把Render()方法转译后的内容直接以html的形式输出,能够生成静态页了。事实正是如此,我们只要重写了Render()方法,将本该显示给用户的内容存成.html的文件:

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.IO;
 
public partial class AspxToHtml: System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {                                                             
    }                                                             
    protected override void Render(HtmlTextWriter writer)
    {
        TextWriter tw = new StringWriter();
        base.Render(new HtmlTextWriter(tw));
        tw.Close();
        string html = tw.ToString();
       
        //设定本次生成的静态页面的名字
        string strFileName = Server.MapPath(".") + "/" + "html1.html";
        //调用文件写出方法
        ToHtml(strFileName, html);
    }
    public static void ToHtml(string filmname, string html)
    {
        System.Text.Encoding code = System.Text.Encoding.GetEncoding("gb2312"); //指定一个gb2312的中文编码
 
        string htmlfilename = filmname;
        string str = html;
        StreamWriter sw = null;
        try
        {
            sw = new StreamWriter(htmlfilename, false, code);
            sw.Write(str);
            sw.Flush();
        }
        catch (Exception ex)
        {
            HttpContext.Current.Response.Write(ex.Message);
            HttpContext.Current.Response.End();
        }
        finally
        {
            sw.Close();
        }
    }
}

  评论这张
 
阅读(70)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017