您的位置:首页 > 编程语言 > ASP

asp.net生成静态页面

2009-09-18 08:40 274 查看
Default..aspx

<meta http-equiv="Content-Type"   content="text/html;charset=utf-8"/>


Default..aspx.cs

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.IO;
using sqlpublic;

public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string url = Server.MapPath("~/default.html");
if (File.Exists(url))
File.Delete(url);
Response.Filter = new ResponseFilter(Response.Filter, Server.MapPath("~/Default.html"));
}
}


ResponseFilter.cs

using System;
using System.Collections.Generic;
using System.Text;
using System.IO;

namespace sqlpublic
{
public class ResponseFilter : Stream
{
private Stream m_sink;
private long m_position;
private FileStream fs;

public ResponseFilter(Stream sink, string path)
{
m_sink = sink;
fs = new FileStream(path, FileMode.OpenOrCreate, FileAccess.Write);
}

// The following members of Stream must be overriden.
public override bool CanRead
{
get
{
return true;
}
}

public override bool CanSeek
{
get
{
return false;
}
}

public override bool CanWrite
{
get
{
return false;
}
}

public override long Length
{
get
{
return 0;
}
}

public override long Position
{
get
{
return m_position;
}
set
{
m_position = value;
}
}

public override long Seek(long offset, System.IO.SeekOrigin direction)
{
return 0;
}

public override void SetLength(long length)
{
m_sink.SetLength(length);
}

public override void Close()
{
m_sink.Close();
fs.Close();
}

public override void Flush()
{
m_sink.Flush();
}

public override int Read(byte[] buffer, int offset, int count)
{
return m_sink.Read(buffer, offset, count);
}

// Override the Write method to filter Response to a file.
public override void Write(byte[] buffer, int offset, int count)
{
//Write out the response to the browser.
m_sink.Write(buffer, 0, count);

//Write out the response to the file.
fs.Write(buffer, 0, count);
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: