ASP.NET动态生成静态页面的实例代码
2023-06-13 09:15:03 时间
最近突然想把项目中新闻管理模块做成静态页,在网上找到很多很好的文章,在这里记录一下,现在只是实现静态页面的生成并没有实现分页功能。其主要原理就是读取数据库的数据然后替换掉静态模板页的内容。
首先制作一个模板页,暂时命名为template.htm,示例代码如下:
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
<body>
<div>
$content$
</div>
</body>
</html>
然后制作制作一个动态页面,在这里我们通过一个按钮点击事件来生成静态页面。
前台页面主要代码(Default.aspx):
复制代码代码如下:
首先制作一个模板页,暂时命名为template.htm,示例代码如下:
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
<body>
<div>
$content$
</div>
</body>
</html>
然后制作制作一个动态页面,在这里我们通过一个按钮点击事件来生成静态页面。
前台页面主要代码(Default.aspx):
<%@PageLanguage="C#"AutoEventWireup="true"CodeFile="Default.aspx.cs"Inherits="_Default"%>
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml">
<headrunat="server">
<title></title>
</head>
<body>
<formid="form1"runat="server">
<div>
<asp:TextBoxID="txtContent"runat="server"Height="179px"TextMode="MultiLine"Width="350px"></asp:TextBox><br/>
<br/>
<asp:ButtonID="btnMake"runat="server"OnClick="btnMake_Click"Text="生成静态页"/>
</div>
</form>
</body>
</html>
后台页面主要代码(Default.aspx.cs):
protectedvoidbtnMake_Click(objectsender,EventArgse)
{
//替换掉模板中的特征字符
stringmbPath=Server.MapPath("template.htm");
Encodingcode=Encoding.GetEncoding("UTF-8");
StreamReadersr=null;
StreamWritersw=null;
stringstr=null;
//读取
try
{
sr=newStreamReader(mbPath,code);
str=sr.ReadToEnd();
}
catch(Exceptionex)
{
throwex;
}
finally
{
sr.Close();
}
//根据时间自动重命名,扩展名也可以自行修改
stringfileName=DateTime.Now.ToString("yyyyMMddHHmm")+".htm";
str=str.Replace("$content$",txtContent.Text);//替换content
//生成静态文件
try
{
sw=newStreamWriter(Server.MapPath("~/")+fileName,false,code);
sw.Write(str);
sw.Flush();
}
catch(Exceptionex)
{
throwex;
}
finally
{
sw.Close();
Response.Write("<ahref="+fileName+"mce_href="+fileName+"target=_blank>"+fileName+"</a>已经生成!");
}
}
当新闻量很大时这样做势必会增加服务器的存储压力,暂时记录下来等毕业设计时再考虑增加动态生成静态页面,静态页面分页的功能。
相关文章
- ASP.NET Core 6框架揭秘实例演示[29]:搭建文件服务器
- ASP.NET编程入门与应用_aspnet网站开发实例
- Net访问Oracle数据库的简易方法(.net访问oracle)
- asp.net(C#)动态添加非ASP的标准html控件(如添加Script标签)
- 浅析ASP.NET安全性分析(加强asp.net1.1/2.0安全性)
- .NET创建、删除、复制文件夹及其子文件的实例方法
- asp.net中文件下载功能的实例代码
- ASP.NET加密口令的方法实例
- asp.net中静态方法和动态方法调用的区别实例分析
- asp.net数据绑定的实例代码
- asp.net得到本机数据库实例的两种方法代码
- .net获取浏览器Cookie(包括HttpOnly)实例分享
- asp.net操作cookie的简单实例
- Winform实现调用asp.net数据接口实例
- ASP.NET数据库缓存依赖实例分析
- 水晶报表asp.net的webform下基本用法实例
- Asp.net配合easyui实现返回json数据实例
- asp.net中Repeart选中整行操作实例