asp教程x页面生成静态的HTML页面的三种方法
asp.net教程系统中,有些动态的页面常被频繁,如我们的首页index.aspx它涉及到大量的数据库教程查询工作,当不断有用户它时,服务器便不断向数据库的查询,实际上做了许多重复的工作
服务器端的myPage.aspx
客户端显示myPage.htm
客户端
针对这种资源的浪费情况,我们现在来设计一个解决方案。我们先将那些一段时间内内容不会有什么改变,但又遭大量的动态页面生成静态的页面存放在服务器上,当客户端发出请求时,就让他们直接我们生成的静态页面,过程如下图。
客户端显示myPage.htm
客户端
Execute
服务器端的myPage.aspx
服务器端的myPage.htm
现在我们需要一个后台程序来完成这些事情。
我们可将此做成一个类classAspxToHtml ,其代码
using System;
using System.IO;
using System.Web.UI;
namespace LeoLu
{
/// summary
/// AspxToHtml 的摘要说明。
/// /summary
public class AspxToHtml
{
/// summary
/// Aspx文件url
/// /summary
public string strUrl;
/// summary
/// 生成html文件的保存路径
/// /summary
public string strSavePath;
/// summary
/// 生成html文件的文件名
/// /summary
public string strSaveFile;
public AspxToHtml()
{
//
// TOD 在此处添加构造函数逻辑
//
}
/// summary
/// 将strUrl放到strSavePath目录下,保存为strSaveFile
/// /summary
/// returns是否成功/returns
public bool ExecAspxToHtml()
{
try
{
StringWriter strHTML = new StringWriter();
System.Web.UI.Page myPage = new Page(); //System.Web.UI.Page中有个Server对象,我们要利用一下它
myPage.Server.Execute(strUrl,strHTML);//将asp_net.aspx将在客户段显示的html内容读到了strHTML中
StreamWriter sw = new StreamWriter(strSavePath+strSaveFile,true,System.Text.Encoding.GetEncoding("GB2312"));
//新建一个文件Test.htm,文件格式为GB2312
sw.Write(strHTML.ToString()); //将strHTML中的字符写到Test.htm中
strHTML.Close();//关闭StringWriter
sw.Close();//关闭StreamWriter
return true;
}
{
return false;
}
}
/// summary
/// 将Url放到Path目录下,保存为FileName
/// /summary
/// param name="Url"aspx页面url/param
/// param name="Path"生成html文件的保存路径/param
/// param name="FileName"生成html文件的文件名/param
/// returns/returns
public bool ExecAspxToHtml(string Url,string Path,string FileName)
{
try
{
StringWriter strHTML = new StringWriter();
System.Web.UI.Page myPage = new Page(); //System.Web.UI.Page中有个Server对象,我们要利用一下它
myPage.Server.Execute(Url,strHTML); //将asp_net.aspx将在客户段显示的html内容读到了strHTML中
StreamWriter sw = new StreamWriter(Path+FileName,true,System.Text.Encoding.GetEncoding("GB2312"));
//新建一个文件Test.htm,文件格式为GB2312
sw.Write(strHTML.ToString()); //将strHTML中的字符写到Test.htm中
strHTML.Close();//关闭StringWriter
sw.Close();//关闭StreamWriter
return true;
}
catch
{
return false;
}
}
}
}
方法A:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
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;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Response.Write(AspxToHtml("./admin/Default2.aspx",Server.MapPath("./index.html")));
}
///
/// 将Url放到Path目录下,保存为FileName
///
/// aspx页面url
/// 保存路径和生成html文件名
///
public bool AspxToHtml(string Url, string PathFileName)
{
try
{
StringWriter strHTML = new StringWriter();
System.Web.UI.Page myPage = new Page();//System.Web.UI.Page中有个Server对象,我们要利用一下它
myPage.Server.Execute(Url, strHTML);//将asp_net.aspx将在客户段显示的html内容读到了strHTML中
//StreamWriter sw = new StreamWriter(PathFileName, false, System.Text.Encoding.GetEncoding("GB2312"));
StreamWriter sw = new StreamWriter(PathFileName, false, System.Text.Encoding.Default);
sw.Write(strHTML.ToString());//将strHTML中的字符写到指定的文件中
strHTML.Close();
strHTML.Dispose();
sw.Close();
sw.Dispose();
return true;
}
catch
{
return false;
}
}
}
方法B:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
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;public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Label1.Text = DateTime.Now.ToString();
}
protected override void Render(HtmlTextWriter writer)
{
System.IO.StringWriter html = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter tw = new System.Web.UI.HtmlTextWriter(html);
base.Render(tw);
System.IO.StreamWriter sw;
sw = new System.IO.StreamWriter(Server.MapPath("Default.htm"), false, System.Text.Encoding.Default);
sw.Write(html.ToString());
sw.Close();
tw.Close();
Response.Write(html.ToString());
}}
数字货币平台排行 比特币交易app官网
原神5.0纳塔新武器息燧之笛强度怎么样 原神5.0纳塔新武器息燧之笛强度介绍2024
2025现货交易平台前十名有哪些优势?前10卓越交易平台排行推荐币安交易所下载
崩坏星穹铁道联动keep活动有哪些福利 崩坏星穹铁道联动keep活动介绍一览
鸣潮渊武的回音频段有什么用 鸣潮渊武的回音频段作用一览
全球加密资产交易所2025排名如何预测?前十预测交易平台排行推荐币安app下载
茶杯头甜蜜终章dlc 官方手机版v1.0.0.3
下载火柴人传说暗影格斗内置菜单 最新版v3.0.1
下载荒野乱斗测试服 安卓版v61.10.3
下载荒野乱斗彩虹服 安卓版v61.10.3
下载寒霜启示录 安卓版v1.25.10
寒霜启示录是一款生存模拟游戏,不少玩家可能对于末日都有着自己
末日城堡免广告版 安卓最新版v0.7.1
末日城堡免广告版是一款非常好玩的模拟经营类游戏,内部可以不看
甜蜜人生模拟器 最新版v1.4.5
甜蜜人生模拟器是一款非常好玩的模拟恋爱手游,玩家在这里能够对
武器锻造师内置功能菜单 v10.4
武器锻造师内置菜单版是游戏的破解版本,在该版本中为玩家提供了
开放空间overfield 安卓版v1.0.5
开放空间Overfield是一款箱庭养成经营手游,让你在广阔