ASP.NET静态页生成方法
本文实例讲述了ASP.NET静态页生成方法。分享给大家供大家参考。具体实现方法如下:
一、问题:
由于业务需要,得把页面按照模板页生成静态页面,所以自己就琢磨了下,写些思路,以备日后需要的时候用。
二、解决方法:
静态页生成用到最多的就是匹配跟替换了,首先得读取模板页的html内容,然后进行你自己定义的标签匹配,比如说我要把我定义的标题标签换成读取数据库的标题内容,那么可以直接读取数据库的标题,然后直接进行替换,然后生成html文件就OK了。
具体代码如下:
///<summary> ///解析模板的html中匹配的标签,进行替换(暂时只能用于没有分页的页面) ///</summary> ///<paramname="html">HTML</param> ///<returns>返回替换后的HTML</returns> publicstaticstringReturnHtml(stringhtml) { stringnewhtml=html; newhtml=newhtml.Replace("<#Title#>","这个是标题替换");//替换标题 //newhtml=newhtml.Replace("<#Content#>","这个是内容替换");//替换标题 newhtml=CreateList(newhtml); returnnewhtml; }
///<summary> ///读取HTML文件 ///</summary> ///<paramname="temp">html文件的相对路径</param> ///<returns>返回html</returns> publicstaticstringReadHtmlFile(stringtemp) { StreamReadersr=null; stringstr=""; try { sr=newStreamReader(HttpContext.Current.Server.MapPath(temp),code); str=sr.ReadToEnd();//读取文件 } catch(Exceptionexp) { HttpContext.Current.Response.Write(exp.Message); HttpContext.Current.Response.End(); } finally { sr.Dispose(); sr.Close();
} returnstr; }
///<summary> ///生成html文件 ///</summary> ///<paramname="filmname">文件名(带相对路径路径,如:../a.html)</param> ///<paramname="html">html内容(整个)</param> publicstaticvoidwriteHtml(stringfilmname,stringhtml) { System.Text.Encodingcode=System.Text.Encoding.GetEncoding("utf-8"); stringhtmlfilename=HttpContext.Current.Server.MapPath(filmname); stringstr=html; StreamWritersw=null; //写文件 try { sw=newStreamWriter(htmlfilename,false,code); sw.Write(str); sw.Flush(); }
catch(Exceptionex) { HttpContext.Current.Response.Write(ex.Message); HttpContext.Current.Response.End(); }
finally { sw.Close(); } }