asp.net生成静态网页 using System; using System.Collections; using System.ComponentModel; using System.Data; using System.Drawing; using System.Web; using System.Web.SessionState; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls; using System.IO; using System.Text; namespace xmlDemo { /**//**//**//// <summary> /// staticWeb 的摘要说明。 /// </summary> public class staticWeb : System.Web.UI.Page { protected System.Web.UI.WebControls.Label Label1; protected System.Web.UI.WebControls.Label Label2; protected System.Web.UI.WebControls.Label Label3; protected System.Web.UI.WebControls.TextBox TextBox1; protected System.Web.UI.WebControls.TextBox TextBox2; protected System.Web.UI.WebControls.TextBox TextBox3; protected System.Web.UI.WebControls.Button Button1; private void Page_Load(object sender, System.EventArgs e) { // 在此处放置用户代码以初始化页面 } public bool WriteFile(string strText,string strContent,string strAuthor) { string path = Server.MapPath("~/news/"); Encoding code = Encoding.GetEncoding("gb2312"); // 读取模板文件 string temp = Server.MapPath("~/news/text.htm"); StreamReader sr=null; StreamWriter sw=null; string str=""; try { sr = new StreamReader(temp, code); str = sr.ReadToEnd(); // 读取文件 } catch(Exception exp) { HttpContext.Current.Response.Write(exp.Message); HttpContext.Current.Response.End(); sr.Close(); } string htmlfilename=DateTime.Now.ToString("yyyyMMddHHmmss")+".htm"; // 替换内容 // 这时,模板文件已经读入到名称为str的变量中了 str =str.Replace("ShowArticle",strText); //模板页中的ShowArticle str = str.Replace("biaoti",strText); str = str.Replace("content",strContent); str = str.Replace("author",strAuthor); // 写文件 try { sw = new StreamWriter(path + htmlfilename , false, code); sw.Write(str); sw.Flush(); } catch(Exception ex) { HttpContext.Current.Response.Write(ex.Message); HttpContext.Current.Response.End(); } finally { sw.Close(); } return true; } Web 窗体设计器生成的代码Web 窗体设计器生成的代码#region Web 窗体设计器生成的代码 override protected void OnInit(EventArgs e) { // // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。 // InitializeComponent(); base.OnInit(e); } /**//**//**//// <summary> /// 设计器支持所需的方法 - 不要使用代码编辑器修改 /// 此方法的内容。 /// </summary> private void InitializeComponent() { this.Button1.Click += new System.EventHandler(this.Button1_Click); this.Load += new System.EventHandler(this.Page_Load); } #endregion private void Button1_Click(object sender, System.EventArgs e) { if(WriteFile(TextBox1.Text,TextBox2.Text,TextBox3.Text)) Response.Write("<font color=/"red/">成功生成静态网页"); else Response.Write("<font color=/"red/">生成出错"); } }} 下面是模版页面: <! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" > < html > < head > < title > ShowArticle </ title > < meta name ="GENERATOR" content ="Microsoft Visual Studio .NET 7.1" > < meta name =ProgId content =VisualStudio.HTML > < meta name =Originator content ="Microsoft Visual Studio .NET 7.1" > </ head > < body > < BR > biaoti < BR > content < BR > author < BR > </ body > </ html > ** 利用Render生成静态页 private void Page_Load( object sender, System.EventArgs e) { //生成静态页 Response.Charset=""; this.EnableViewState =false; StringWriter tw=new StringWriter(); HtmlTextWriter wt =new HtmlTextWriter(tw); string path=Server.MapPath(".")+"//news//test.htm"; StreamWriter wter = File.CreateText(path); //输出所有信息 this.RenderControl(wt); wter.Write(tw.ToString()); //Response.Write(tw.ToString()); wter.Close(); wt.Close(); tw.Close(); Response.End(); //生成相应文件,然后定向到该文件 Response.Redirect(path); }