欢迎您访问我爱IT技术网,今天小编为你分享的编程技术是:【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.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 ...{
}
}
以上所分享的是关于Asp.Net中动态页面转静态页面,下面是编辑为你推荐的有价值的用户互动:
相关问题:ASP.NET 动态生成静态页面
答:用这段代码试试:using System; using System.Data; using System.Configuration; using System.Web; using System.IO; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.Web... >>详细
相关问题:如何将静态页面转换成asp.net动态页面
答:可以直接改扩展名,如改成Default2.aspx,再在最前面加一行 然后建立Default2.aspx.cs页,内容为 using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; usin... >>详细
相关问题:动态页面转换为静态页面的好处是什么?
答:6年资深网站策划来跟你讲讲这个老生常谈的问题吧。 首先楼上的都没弄清楚,问题在于动态转静态的好处,而不是要做成静态页。 动态转静态的好处是: 1、加快访问速度。(不需运算,直接显示) 2、减轻服务器负荷。(运算少了,负荷自然减轻) 3、... >>详细
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
