IT猫扑网:您身边最放心的安全下载站! 最新更新|软件分类|软件专题|手机版|论坛转贴|软件发布

您当前所在位置: 首页网络编程.Net编程 → Asp.Net中动态页面转静态页面

Asp.Net中动态页面转静态页面

时间:2015-06-28 00:00:00 来源:IT猫扑网 作者:网管联盟 我要评论(0)

关于在Asp.Net中动态页面转静态页面的方法网上比较多。结合实际的需求,我在网上找了一些源代码,并作修改。现在把修改后的代码以及说明写一下。

一个是一个页面转换的类,该类通过静态函数Changfile()来实现,动态页面到静态页面的转换。

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>/// Summary description for HtmlProxy/// </summary>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 ...{}}

关键词标签:页面,静态,动态,...,u

文章评论
发表评论

热门文章 诛仙3飞升任务怎么做-诛仙3飞升任务流程最新2022 诛仙3飞升任务怎么做-诛仙3飞升任务流程最新2022 钟离圣遗物推荐-原神钟离圣遗物词条 钟离圣遗物推荐-原神钟离圣遗物词条 解决方法:应用程序“DEFAULT WEB SITE”中的服务器错误 解决方法:应用程序“DEFAULT WEB SITE”中的服务器错误 使用aspnet_regiis.exe 重新注册.NET Framework 使用aspnet_regiis.exe 重新注册.NET Framework

人气排行 1诛仙3飞升任务怎么做-诛仙3飞升任务流程最新2022 2asp.net表单提交方法GET\POST 3在ASP.NET中如何判断用户IE浏览器的版本 4Asp.net中messagebox的实现方法 5Asp.net中的web.config配置 6在ASP.NET MVC中实现大文件异步上传 7asp.net获取URL和IP地址 8FileUpload上传多文件出现错误的解决方法