OS:Windows;Server;2003;中文版;
ASP.Net生成静态HTML页;
在Asp中实现的生成静态页用到的FileSystemObject对象!;
在.Net中涉及此类操作的是System.IO;
以下是程序代码;注:此代码非原创!参考别人代码;
//生成HTML页;
public;static;bool;WriteFile(string;strText,string;strContent,string;strAuthor);
{;
string;path;=;HttpContext.Current.Server.MapPath("/news/");;
Encoding;code;=;Encoding.GetEncoding("gb2312");;
//;读取模板文件;
string;temp;=;HttpContext.Current.Server.MapPath("/news/text.html");;
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")+".html";;
//;替换内容;
//;这时,模板文件已经读入到名称为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;;
此函数放在Conn.CS基类中了;
在添加新闻的代码中引用;注:工程名为Hover;
if(Hover.Conn.WriteFilethis.Title.Text.ToString),this.Content.Text.ToString),this.Author.Text.ToString)));
{;
Response.Write("添加成功");;
};
else;
{;
Response.Write("生成HTML出错!");;
};
-------------------------------------------------------------------------;
模板页Text.html代码;
-------------------------------------------------------------------------;
<!DOCTYPE;HTML;PUBLIC;"-//W3C//DTD;HTML;4.0;Transitional//EN";>;
<HTML>;
<HEAD>;
<title>ShowArticle</title>;
<body>;
biaoti;
<br>;
content<br>;
author;
</body>;
</HTML>;;;;
------------------------------------------------------------------------;
提示添加成功后会出以当前时间为文件名的html文件!上面只是把传递过来的几个参数直接写入了HTML文件中,在实际应用中需要先添加数据库,然后再写入HTML文件;
而且需要把生成的文件名等写入数库以便以后调用等,此实例只是实现了根据提交过来参数替换模板中的相应的字段!;需要完善的地方很多!哪位有高见,欢迎赐教!;
标签: