首页 > 编程 > .NET > 正文

asp.net下实现静态页面(html)

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

当我们的网站访问量很大的时候,客户端的每一次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()对字符解码!!! 

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