您好,登錄后才能下訂單哦!
本篇內容主要講解“Asp.Net動態頁面的轉換方法”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Asp.Net動態頁面的轉換方法”吧!
關于在Asp.Net動態頁面轉靜態頁面的方法網上比較多。結合實際的需求,我在網上找了一些源代碼,并作修改。現在把修改后的代碼以及說明寫一下。
一個Asp.Net動態頁面轉換的類,該類通過靜態函數Changfile()來實現,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.Text; using System.IO; /**//// /// Summary description for HtmlProxy /// public class HtmlProxy ...{ public HtmlProxy() ...{ } public static bool ChangeFile(int id) ...{ string filename = HttpContext.Current.Server.MapPath("Post_" + id + ".html"); //嘗試讀取已有文件 Stream st = GetFileStream(filename); //如果文件存在并且讀取成功 if (st != null) ...{ using (st) ...{ StreamToStream(st, HttpContext.Current.Response.OutputStream); return true; //Response.End(); } } else ...{ StringWriter sw = new StringWriter(); HttpContext.Current.Server.Execute("ForumDetail.aspx?PID=" + id, sw); string content = sw.ToString(); //寫進文件 try ...{ using (FileStream fs = new FileStream(filename, FileMode.Create, FileAccess.Write, FileShare.Write)) ...{ using (StreamWriter stw = new StreamWriter(fs, HttpContext.Current.Response.ContentEncoding)) ...{ stw.Write(content); } } return true; } catch ...{ return false; } } } private static Stream GetFileStream(string filename) ...{ try ...{ DateTime dt = File.GetLastWriteTime(filename); TimeSpan ts = dt - DateTime.Now; if (ts.TotalHours >1) ...{ //一小時后過期 return null; } return new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.Read); } catch ...{ return null; } } static public void StreamToStream(Stream src, Stream dst) ...{ byte[] buf = new byte[4096]; while (true) ...{ int c = src.Read(buf, 0, buf.Length); if (c == 0) return; dst.Write(buf, 0, c); } } } 在頁面文件中,ForURL.aspx的后臺代碼如下: protected void Page_Load(object sender, EventArgs e) ...{ try ...{ int id = int.Parse(Request.QueryString["PID"]); if(HtmlProxy.ChangeFile(id)) ...{ Response.Redirect("Post_" + id + ".html"); } else ...{ Response.Redirect("Post.aspx?PID=" + id ); } } catch ...{ } }
到此,相信大家對“Asp.Net動態頁面的轉換方法”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。