铭瑶学习社区

首页 » 网站建设(编程语言) » .NET专区 » ASP.NET生成静态页面
TSXMLOVE - 2008-6-23 12:50:00
ASP.NET当前页面生成静态页面比较好的方法:



private string File = "重写Render方法生成的静态页面.xml";
    //生成静态页面方法Begin=====
    protected override void Render(HtmlTextWriter writer)
    {
        System.IO.StringWriter html = new System.IO.StringWriter();
        base.Render(new HtmlTextWriter(html));
        using (System.IO.StreamWriter sw = new System.IO.StreamWriter(Server.MapPath(this.File), false, System.Text.Encoding.UTF8))
        {
            sw.Write(html.ToString());
            sw.Close();
            //sw = null;//Compiler Error Message: CS1656: Cannot assign to 'sw' because it is a 'using variable'
        }
        html.Close();
        html = null;
        HttpContext.Current.Server.Execute(this.File);
    }
   
    //生成静态页面方法End=====
    protected void Page_PreInit(object sender, EventArgs e)
    {
        if (System.IO.File.Exists(this.File)) { Server.Transfer(this.File); return; }
}



原理:重写Page类的Render方法,实现在HTML内容生成后,输出前获取到HTML内容并写入到文件,再重定向。
alex - 2008-6-23 16:12:00
应该生成Gb2312的比较常用!
cznfh - 2008-10-18 21:36:00
谢谢楼主分享.
1
查看完整版本: ASP.NET生成静态页面