Go homepage(回首页) Upload pictures (上传图片) Write articles (发文字帖)
The author:(作者)delvpublished in(发表于) 2014/1/23 2:55:56 ASP.NET(C#)生成静态html页面_[Asp.Net教程]
生成静态页面的好处就很多了,比如提高访问速度,利于搜索引擎抓取等等。下面这个是利用替换模板中特殊字符的原理写的。供大家交流学习……
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 Mysqlserver;//数据库操作类using System.IO;using System.Text;namespace NewsAdd{ public partial class Admin_AdminPanel_NewsAdd : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) {
} protected void Button1_Click(object sender, EventArgs e) { string strTitle=Request.Form["Title"].ToString(); string strContent=Request.Form["Content"].ToString(); SqlServerDataBase db = new SqlServerDataBase(); bool success = db.Insert("insert into inNews(Title,Content)values('" + strTitle + "','" + strContent + "')", null); //if (success) // Message.Text = "添加成功!"; /**////////////////////////////创建当前日期的文件夹开始 string dir = Server.MapPath("../../"+"NewsFiles/"+DateTime.Now.ToString("yyMMdd")); if (!Directory.Exists(dir)) { Directory.CreateDirectory(dir); } /**////////////////////////////创建当前日期的文件夹结束 string[] newContent = new string[5];//定义和html标记数目一致的数组 StringBuilder strhtml = new StringBuilder(); try { //创建StreamReader对象 using (StreamReader sr = new StreamReader(Server.MapPath("../../" + "NewsFiles/") + "\template.html")) { String oneline; //读取指定的HTML文件模板 while ((oneline = sr.ReadLine()) != null) { strhtml.Append(oneline); } sr.Close(); } } catch (Exception err) { //输出异常信息 Response.Write(err.ToString()); } //为标记数组赋值 newContent[0] = strTitle;//标题 newContent[1] = "BackColor='#cccfff'";//背景色 newContent[2] = "#ff0000";//字体颜色 newContent[3] = "100px";//字体大小 newContent[4] = strContent;//主要内容
//根据上面新的内容生成html文件 try { //指定要生成的HTML文件 string fname = Server.MapPath("../../" + "NewsFiles/" + DateTime.Now.ToString("yyMMdd")) + "\" + DateTime.Now.ToString("yyyymmddhhmmss") + ".html"; //替换html模版文件里的标记为新的内容 for (int i = 0; i < 5; i++) { strhtml.Replace("htmlkey[" + i + "]", newContent[i]); } //创建文件信息对象 FileInfo finfo = new FileInfo(fname); //以打开或者写入的形式创建文件流 using (FileStream fs = finfo.OpenWrite()) { //根据上面创建的文件流创建写数据流 StreamWriter sw = new StreamWriter(fs, System.Text.Encoding.GetEncoding("GB2312")); //把新的内容写到创建的HTML页面中 sw.WriteLine(strhtml); sw.Flush(); sw.Close(); } } catch (Exception err) { Response.Write(err.ToString()); } }}}
template.html 的主要代码
htmlkey[0] htmlkey[4]
-------------------------------------
生成静态页面过程中路径问题很重要,一定要设置明白。代码已经加了简单的注释。来源:CSDN
赞