在 技术一 中使用的是页面的事件,本文将使用重写Page类方法的方式来实现静态页。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;
using System.Text;
public partial class _Default : System.Web.UI.Page
{
string fileName;
protected void Page_Load(object sender, EventArgs e)
{
Label1.Text = DateTime.Now.ToString();
}
protected override void OnPreInit(EventArgs e)
{
fileName = "StaticTest.htm"; //生成的静态页文件
if (File.Exists(Server.MapPath(fileName)))
Server.Transfer(fileName);
}
//HtmlTextWriter: 将标记字符和文本写入到 ASP.NET 服务器控件输出流
protected override void Render(HtmlTextWriter writer)
{
StringWriter html = new StringWriter();
writer.InnerWriter = html; //获取页面的输出流文本
base.Render(writer); //将页面内容呈现在页面上。
StreamWriter sw = new StreamWriter(Server.MapPath(fileName), false, System.Text.Encoding.UTF8);
sw.Write(html.ToString());
sw.Flush();
sw.Close();
Response.Redirect(this.fileName);
}
}