用ASP.NET,C#实现生成静态页面

mac2022-06-30  21

示列代码           1.定义(template.htm)html模板页面           <html>           <head>           <title></title>           <meta   http-equiv="Content-Type"   content="text/html;   charset=gb2312">           </head>           <body   >           <table   $htmlformat[0]   height="100%"   border="0"   width="100%"   cellpadding="10"   cellspacing="0"   bgcolor="#eeeeee"   style="border:1px   solid   #000000">           <tr>           <td   width="100%"   valign="middle"   align="left">           <span   style="color:   $htmlformat[1];font-size:   $htmlformat[2]">$htmlformat[3]</span>           </td>           </tr>           </table>           </body>           </html>           2.asp.net代码:           //---------------------读html模板页面到stringbuilder对象里----           string[]   format=new   string[4];//定义和htmlyem标记数目一致的数组           StringBuilder   htmltext=new   StringBuilder();           try           {           using   (StreamReader   sr   =   new   StreamReader("存放模板页面的路径和页面名"))           {           String   line;           while   ((line   =   sr.ReadLine())   !=   null)           {           htmltext.Append(line);           }           sr.Close();           }           }           catch           {           Response.Write("<Script>alert('读取文件错误')</Script>");           }           //---------------------给标记数组赋值------------           format[0]="background=\"bg.jpg\"";//背景图片           format[1]=   "#990099";//字体颜色           format[2]="150px";//字体大小           format[3]=   "<marquee>生成的模板html页面</marquee>";//文字说明           //----------替换htm里的标记为你想加的内容           for(int   i=0;i<4;i++)           {           htmltext.Replace("$htmlformat["+i+"]",format[i]);           }           //----------生成htm文件------------------――           try           {           using(StreamWriter   sw=new   StreamWriter("存放路径和页面名",false,System.Text.Encoding.GetEncoding("GB2312")))           {           sw.WriteLine(htmltext);           sw.Flush();           sw.Close();           }           }           catch           {           Response.Write   ("The   file   could   not   be   wirte:");           }           小结           用此方法可以方便的生成html文件。程序使用了是循环替换,因此对需替换大量元素的模板速度非常快。 ---------------------------------------------------------------- 方法2: ASP.Net生成静态HTML页       环境:Microsoft   .NET   Framework   SDK   v1.1       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>                               biaoti       <br>       content<br>       author       </body>     </HTML>                               biaoti       <br>       content<br>       author       </body>     </HTML>  

转载于:https://www.cnblogs.com/webman/archive/2006/11/24/570683.html

最新回复(0)