C#动态生成静态页面

    技术2022-05-19  25

    .NET 的WebRequest类提供了许多WEB请求功能,方便了Windows Form和Web Form对WEB的交互操作,加上Stream的操作,可以很方便的通过URL将动态页面 生成静态页面,并保存在本地或服务器 上,因为是通过URL请求,所以不存在语言和编码的限制,同时,可以适用于Windows Form和Web Form,下面柯男写了一个简单的类,来完成一些基本操作。

    StaticPage.cs  using System;  using System.Data;  using System.Configuration;  using System.Linq;  using System.Web;  using System.Web.Security;  using System.Web.UI;  using System.Web.UI.Html Controls;  using System.Web.UI.WebControls;  using System.Web.UI.WebControls.WebParts;  using System.Xml.Linq;  using System.Net;  using System.IO;  /// <summary>  ///URL动态保存静态页面  /// </summary>  public class StaticPage  {      private string _url="";      private WebRequest request;      private WebResponse response;  public StaticPage()  {     }      public StaticPage(string url)      {          _url = url;      }      public string Url      {          get          {              return _url;          }          set          {              _url = value;          }      }      public bool Save(string FilePath)      {          bool _isOk = false;          if(_url!="")          {              request = WebRequest.Create(_url);              response=request.GetResponse();              if(File.Exists(FilePath))              {                  File.Delete(FilePath);              }              StreamReader reader = new StreamReader(response.GetResponseStream(),System.Text.Encoding.Default);              StreamWriter write = new StreamWriter(FilePath,false, System.Text.Encoding.Default);              write.Write(reader.ReadToEnd());              write.Flush();              write.Close();              write = null;              _isOk = true;          }          return _isOk;      }  }   复制代码 cai.asp x  <%@ Page Language="C# " %>  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  <script. runat="server">      private void Page_Load(object sender, EventArgs e)      {               }      private void saveBtn_click(object sender, EventArgs e)      {          if (path.Text.ToString() != "")          {              StaticPage page = new StaticPage();              page.Url = path.Text.ToString();              string filePath = Server.MapPath("temp.html");              if (page.Save(filePath))              {                  Response.Redirect("temp.html");              }          }      }         </script>  <html xmlns="http://www.w3.org/1999/xhtml">  <head runat="server">      <title>动态生成静态页面文件</title>      <style. type="text/css">      input      {        padding:4px;        font-size:12px;      }      </style>  </head>  <body>      <form. id="form1" runat="server">      <div>      <asp:TextBox ID="path" runat="server" Width="300px"></asp:TextBox>      <asp:Button ID="saveBtn" runat="server" Text="生成静态文件/" nClick="saveBtn_click" />      </div>      </form>  </body>  </html>

    最新回复(0)