手机
当前位置:查字典教程网 >编程开发 >asp.net教程 >Asp.Net 动态页面转静态页面主要代码
Asp.Net 动态页面转静态页面主要代码
摘要:一个是一个页面转换的类,该类通过静态函数Changfile()来实现,动态页面到静态页面的转换。复制代码代码如下:usingSystem;u...

一个是一个页面转换的类,该类通过静态函数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 ...{

}

}

【Asp.Net 动态页面转静态页面主要代码】相关文章:

在Asp.net用C#建立动态Excel

Asp.net 5种页面转向方法

asp.net输出重写压缩页面文件实例代码

asp.net gridview代码绑定

asp.net 生成曲线图实现代码

Asp.net(C#)实现验证码功能代码

Asp.Net类库中发送电子邮件的代码

asp.net下实现URL重写技术的代码

ASP.NET MVC 学习5、登陆页面改为SSO验证

asp.net Web Services上传和下载文件(完整代码)第1/2页

精品推荐
分类导航