当我们的网站访问量很大的时候,客户端的每一次post都去大量调用数据库服务器是一件多么可怕的事。系统性能会大打折扣,轻则速度很慢、数据库锁死,重则系统崩溃。本文将通过实现静态html页面解决这个问题。
1、建立conn.cs类文件
using system;
//记得添加以下三引用
using system.text;
using system.web;
using system.io;
namespace myservers
{
/// <summary>
/// conn 的摘要说明。
/// </summary>
public class conn
{
public conn()
{
//
// todo: 在此处添加构造函数逻辑
//
}
public bool writefile(string strtext,string strcontent,string strauthor)
{
string path = httpcontext.current.server.mappath("/myservers/news/");//定义html文件存放路径
encoding code = encoding.getencoding("gb2312");//定义文字编码
// 读取模板文件
string temp = httpcontext.current.server.mappath("/myservers/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=path + datetime.now.tostring("yyyymmddhhmmss")+".html";
// 替换内容
// 这时,模板文件已经读入到名称为str的变量中了
str = str.replace("showarticle",strtext); //模板页中的showarticle
str = str.replace("title",strtext);
str = str.replace("content",strcontent);
str = str.replace("author",strauthor);
// 写文件
try
{
sw = new streamwriter(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;
}
}
}
2、addnews.aspx文件
添加三和textbox分别为:tbx_title、tbx_content、tbx_author和一个button:btn_addnews。
addnews.aspx.cs文件
private void btn_addnews_click(object sender, system.eventargs e)
{
conn hover = new conn();
if(hover.writefile(this.txb_title.text.tostring(),server.htmldecode(this.txb_content.value),this.txb_author.text.tostring()))
{
response.write("添加成功");
}
else
{
response.write("生成html出错!");
}
}
3、添加模板text.html文件
<head>showarticle</head>
<body>
title<br>
content<br>
author
</body>
说明:news文件夹必须赋予asp.net用户写入的权限。这是一个简单的实现例子,实际项目必须先将数据保存到数据库下面,在datagird中调用数据库下面html文件的url地址。
评论
# re: asp.net下实现静态页面(html) 2005-09-12 23:52 sunshine
注意:默认情况下,我们是不能向textbox、textarea中添加html语法的,必须修改config文件,在<system.web>下面添加<pages validaterequest="false" />,但是这样做的话,整个项目中都允许键入html标签了,暂时还不知道其他的方法。
必须使用server.htmldecode(this.content.value).tostring()对字符解码!!!
新闻热点
疑难解答
图片精选