All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
ASP.NET,2.0高级数据处理之处理Null值_.net资料_编程技术
ASP.Net常用功能整理——生成图片的缩略图_[Asp.Net教程]
php分页类_[PHP教程]
用VS.NET,2005重构你的代码_[Asp.Net教程]
php中关于处理字符串时效率的讨论_php资料_编程技术
ASP.NET,2.0移动开发之设备筛选器的应用_[Asp.Net教程]
JS实现图片无缝滚动的完美解决_JavaScript技术_编程技术
ASP.NET下使用MD5加密_[Asp.Net教程]
《Effective,C#》:值类型和引用类型_[Asp.Net教程]
ajax+php无刷新二级联动下拉菜单(省市联动)源码_[PHP教程]
Reading number is top 10 pictures
The money of more than 100 countries and regions7
超强高考作文
BingBingFan apple dew point photo gallery5
ashlynn brooke
男人帮杂志里的惹火性感美女1
A man's favorite things14
水晶头骨造型的酒瓶
Valentine's day comes, send some cartoon
The real super beauty14
上传几张色图
Download software ranking
White deer villiage
星际争霸1.08硬盘免安装版
卡丁车单机版
软件工程思想
C语言教程TXT
双旗镇刀客B
终极变速大师Speeder3.26
致我们终将逝去的青春
金山office2007
Tram sex maniac 2 (H) rar bag7
归海一刀 published in(发表于) 2014/1/30 0:58:46 Edit(编辑)
Asp.Net中动态页面转静态页面_[Asp.Net教程]

Asp.Net中动态页面转静态页面_[Asp.Net教程]

Asp.Net中动态页面转静态页面_[Asp.Net教程]

关于在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 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 {
}
}







添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.