Asp.Net模板生成HTML页面

前一阵子,一哥们问我Asp.Net怎么根据模板生成HTML静态页面?

一、生成HTML好处

  1. HTML都静态化了,不用说,速度肯定是更快的(不用读取数据库能不快吗)

  2. 更加的安全,脱离了数据库,防止了sql注入等等。

  3. 更利于SEO,HTML页面更加容易被收录到,这点对站长朋友来说,可能更关心。

二、Asp.Net生成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;

}
来源:http://www.csaspx.com/articlelist-6566.html
原文地址:https://www.cnblogs.com/liubo175175/p/4288779.html