首页 > 编程 > .NET > 正文

动态网页变静态:ASP.NET生成静态HTML页

2024-07-10 13:08:23
字体:
来源:转载
供稿:网友

环境:microsoft .net framework sdk v1.1
os:windows server 2003 中文版
asp.net生成静态html页
在asp中实现的生成静态页用到的filesystemobject对象!
在.net中涉及此类操作的是system.io

code:

//生成html页
public static bool writefile(string strtext,string strcontent,string strauthor)
{
string path = httpcontext.current.server.mappath("/news/");
encoding code = encoding.getencoding("gb2312");
// 读取模板文件
string temp = httpcontext.current.server.mappath("/news/text.html");
streamreader sr=null;
streamwriter sw=null;
string str="";
try
{
sr = new streamreader(temp, code);
str = sr.readtoend(); // 读取文件
}
catch(exception exp)
{
httpcontext.current.response.write(exp.message);
httpcontext.current.response.end();
sr.close();
}
string htmlfilename=datetime.now.tostring("yyyymmddhhmmss")+".html";
// 替换内容
// 这时,模板文件已经读入到名称为str的变量中了
str =str.replace("showarticle",strtext); //模板页中的showarticle
str = str.replace("biaoti",strtext);
str = str.replace("content",strcontent);
str = str.replace("author",strauthor);
// 写文件
try
{
sw = new streamwriter(path + htmlfilename , false, code);
sw.write(str);
sw.flush();
}
catch(exception ex)
{
httpcontext.current.response.write(ex.message);
httpcontext.current.response.end();
}
finally
{
sw.close();
}
return true;

此函数放在conn.cs基类中了

在添加新闻的代码中引用 注:工程名为hover

if(hover.conn.writefile(this.title.text.tostring(),this.content.text.tostring(),this.author.text.tostring()))
{
response.write("添加成功");
}
else
{
response.write("生成html出错!");
}

模板页text.html代码

code:

<!doctype html public "-//w3c//dtd html 4.0 transitional//en" >
<html>
<head>
<title>showarticle</title>
<body>
biaoti
<br>
content<br>
author
</body>
</html>
biaoti
<br>
content<br>
author
</body>
</html>

提示添加成功后会出以当前时间为文件名的html文件!上面只是把传递过来的几个参数直接写入了html文件中,在实际应用中需要先添加数据库,然后再写入html文件

下面是asp生成静态网页的一种方法

--------------------------------------------------------------------------------

下面代码可以帮您生成静态页面,如:list.asp是读数据库的页面,要生在list.htm静态页面,你的域名是xxx.com,可以用下面代码,使用方法:

if savefile("/htm/list.htm","http://www.xxx.com/asp/list.asp") then
    response.write "已生成"
else
    response.write "没有生成"
end if

如生成失败,请把代码on error resume next封了,查看具体错误信息

代码如下:

<%
if savefile("/htm/list.htm","http://www.xxx.com/asp/list.asp") then
 response.write "已生成"
else
 response.write "没有生成"
end if

function savefile(localfilename,remotefileurl)
 dim ads, retrieval, getremotedata
 on error resume next
 set retrieval = server.createobject("microso" & "ft.xm" & "lhttp")
 with retrieval
  .open "get", remotefileurl, false, "", ""
  .send
  getremotedata = .responsebody
 end with
 set retrieval = nothing
 set ads = server.createobject("ado" & "db.str" & "eam")
 with ads
  .type = 1
  .open
  .write getremotedata
  .savetofile server.mappath(localfilename), 2
  .cancel()
  .close()
 end with
 set ads=nothing
 if err <> 0 then
  savefile = false
  err.clear
 else
  savefile = true
 end if
end function
%>

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表