zoukankan      html  css  js  c++  java
  • Asp.net生成静态网页的实现代码

    现在做程序都要将动态的页面转换成静态页面,今天教大家在ASP.NET 中实现静态页面的生成方法。

    using System; 
      using System.Data; 
      using System.Configuration; 
      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 System.IO; 
      using System.Text; 
      ///  
      /// WriteFile 的摘要说明 
      ///  
      public class WriteFile 
      { 
      public WriteFile() 
      { 
      } 
      public static bool createHtml(string[] strnewsHtml,string[] stroldHtml,string strModeFilePath,string strPath) 
      { 
      bool flag = false; 
      StreamReader sr = null; 
      StreamWriter sw = null; 
      string filepath = HttpContext.Current.Server.MapPath(strModeFilePath); 
      Encoding code = Encoding.GetEncoding("gb2312"); 
      string s = string.Empty; 
      try 
      { 
      sr = new StreamReader(filepath,code); 
      s = sr.ReadToEnd(); 
      } 
      catch (Exception ex) 
      { 
      throw ex; 
      } 
      finally 
      { 
      sr.Close(); 
      } 
      try 
      { 
      for (int i = 0; i < strnewsHtml.Length; i++) 
      { 
      s = s.Replace(stroldHtml[i], strnewsHtml[i]); 
      } 
      sw = new StreamWriter(HttpContext.Current.Server.MapPath(strPath), false, code); 
      sw.Write(s); 
      flag = true; 
      } 
      catch (Exception ex) 
      { 
      flag = false; 
      throw ex; 
      } 
      finally 
      { 
      sw.Flush(); 
      sw.Close(); 
      } 
      return flag; 
      } 
      public static bool UpdateHtmlPage(string[] strNewsHtml, string[] strStartHtml, string[] strEndHtml, string strHtml) 
      { 
      bool Flage = false; 
      StreamReader ReaderFile = null; 
      StreamWriter WrirteFile = null; 
      string FilePath = HttpContext.Current.Server.MapPath(strHtml); 
      Encoding Code = Encoding.GetEncoding("gb2312"); 
      string strFile = string.Empty; 
      try 
      { 
      ReaderFile = new StreamReader(FilePath, Code); 
      strFile = ReaderFile.ReadToEnd(); 
      } 
      catch (Exception ex) 
      { 
      throw ex; 
      } 
      finally 
      { 
      ReaderFile.Close(); 
      } 
      try 
      { 
      int intLengTh = strNewsHtml.Length; 
      for (int i = 0; i < intLengTh; i++) 
      { 
      int intStart = strFile.IndexOf(strStartHtml[i]) + strStartHtml[i].Length; 
      int intEnd = strFile.IndexOf(strEndHtml[i]); 
      string strOldHtml = strFile.Substring(intStart, intEnd - intStart); 
      strFile = strFile.Replace(strOldHtml, strNewsHtml[i]); 
      } 
      WrirteFile = new StreamWriter(FilePath, false, Code); 
      WrirteFile.Write(strFile); 
      Flage = true; 
      } 
      catch (Exception ex) 
      { 
      throw ex; 
      } 
      finally 
      { 
      WrirteFile.Flush(); 
      WrirteFile.Close(); 
      } 
      return Flage; 
      } 
      } 
      调用公共类: 
      ---------------------------------------------------------------------------- 
      protected void Button2_Click(object sender, EventArgs e) 
      { 
      string NewsTitle = this.TextBox1.Text; 
      string NewsKindName = this.DropDownList1.SelectedItem.Text; 
      string NewsBody = this.WebEditor1.Text; 
      DateTime PubTime = DateTime.Now; 
      string UserName = Session["UserName"].ToString(); 
      Response.Write(NewsKindName); 
      string[] strNewsHtml = new string[] { NewsTitle, NewsKindName, NewsBody, PubTime.ToString(), UserName }; 
      string[] strOldHtml = new string[] { "@Title", "@NewsKInd", "@NewsBody", "@PubTime", "@UserName" }; 
      string strFileName = DateTime.Now.ToString("ddhhmmss") + ".html"; 
      string strFilePath = string.Format("NewsHtml/{0}", strFileName); 
      try 
      { 
      if (WriteFile.createHtml(strNewsHtml, strOldHtml, "mode.htm", strFilePath)) 
      { 
      this.Label1.Text = "生成成功!"; 
      } 
      else 
      { 
      this.Label1.Text = "生成失败!"; 
      } 
      } 
      catch 
      { 
      this.Label1.Text = "生成失败!"; 
      } 
      } 
      protected void Button3_Click(object sender, EventArgs e) 
      { 
      string[] strNewsHtml=new string[]{"到此一游!"}; 
      string[] strStartHtml=new string[]{""}; 
      string[] strEndHtml=new string[]{""}; 
      if (WriteFile.UpdateHtmlPage(strNewsHtml, strStartHtml, strEndHtml, "NewsHtml/02011139.html")) 
      { 
      this.Label1.Text="生成首页成功!"; 
      } 
      else 
      { 
      this.Label1.Text="生成首页失败!"; 
      } 
      }

      新建文件夹NewsHtml,生成html文件放在里面

      -----------------------------------------------------------

      增加一个模板文件

    <html xmlns="http://www.w3.org/1999/xhtml" > 
    <head> 
        <title>无标题页</title> 
    </head> 
    <body> 
        <table border="1" cellpadding="0" cellspacing="0" style=" 522px; height: 338px"> 
            <tr> 
                <td align="center" colspan="2"> 
                    @Title</td> 
    </tr> 
            <tr> 
                <td align="center" colspan="2"> 
                    发布人:@UserName &nbsp; &nbsp; 发布时间:@PubTime &nbsp; &nbsp;&nbsp; 新闻类别:@NewsKInd</td> 
            </tr> 
            <tr> 
                <td colspan="2"> 
                    @NewsBody</td></tr><tr> 
      <td style="WIDTH: 100px">  
    </td><td style="WIDTH: 100px" > 
    </td></tr></table></body></html>

    转载自:http://www.aspnetjia.com

  • 相关阅读:
    tkinter 写一个简易的ide
    Vue+webpack项目配置便于维护的目录结构
    爬虫:输入网页之后爬取当前页面的图片和背景图片,最后打包成exe
    linux vue项目+npm run build + nginx
    Android 进阶自定义 ViewGroup 自定义布局
    Android 属性动画框架 ObjectAnimator、ValueAnimator ,这一篇就够了
    桶排序
    Test CMake run finished with errors
    搭建私人云盘
    Java中 / 和 %
  • 原文地址:https://www.cnblogs.com/aspnetjia/p/5170855.html
Copyright © 2011-2022 走看看