ASP.NET动态生成html页面

                                 ASP.NET 动态生成 html 页面
·                       功能 适用于后台 数据 库功能不强的 web 站点,即大部分文本不是存放在数据库的记录中,而是放在 html 文件或者 xml 文件中,仅仅把索引放到数据库中,如文章标题、类别、查询关键字等。这样适合于后台没有诸如 MS Sql Server 这样的数据库支持的 Web 站点。

  适用于 新闻 发布 系统 ,比如 sina 163 等都是采用动态生成 html 页面的。

  适用于需动态 定制 页面的 程序 。比如论坛、聊天室等。可以加载定制好的 html 页面,来加强美观。

   思路

   1. 利用如 Dw-Mx 这样的工具生成 html 格式的模板,在需要添加格式的地方加入特殊标记 ( $htmlformat$), 动态生成文件时利用 代码 读取此模板,然后获得前台输入的内容,添加到此模板的标记位置中,生成新文件名后写入磁盘,写入后再向数据库中写入相关数据。

   2. 使用 后台代码硬编码 Html 文件,可以使用 HtmlTextWriter 类来写 html 文件。

   优点

   1. 可以建立非常复杂的页面,利用包含 js 文件的方法,在 js 文件内加入 document.write() 方法可以在所有页面内加入如页面头, 广告 等内容。

   2. 静态 html 文件利用 MS Windows2000 Index Server 可以建立全文搜索引擎,利用 asp.net 可以以 DataTable 的方式得到搜索结果。而 Win2000 Index服务 无法查找 xml 文件的内容。如果包括了数据库搜索与 Index 索引双重查找,那么此搜索功能将非常强大。

   3. 节省 服务器 的负荷,请求一个静态的 html 文件比一个 aspx 文件服务器资源节省许多。

   缺点

  思路二: 如果用硬编码的方式,工作量非常大,需要非常多的 html 代码。调试困难。而且使用硬编码生成的 html 样式无法修改,如果网站更换样式,那么必须得重新编码,给后期带来巨大的工作量。

  因此这里采用的是第一种思路

  示列代码

   1. 定义 (template.htm)html 模板页面
html
head
 < title >< /title
 < meta http-equiv="Content-Type" content="text/html; charset=gb2312"
/head
body
table $htmlformat[0] height="100%" border="0" width="100%" cellpadding="10" cellspacing="0" bgcolor="#eeeeee" style="border:1px solid #000000"
tr
td width="100%" valign="middle" align="left"
span style="color: $htmlformat[1];font-size: $htmlformat[2]" $htmlformat[3] /span
/td
/tr
/table
/body
/html
·                                
   2.asp.net 代码:
//--------------------- html 模板页面到 stringbuilder 对象里 ----

string[] format=new string[4];//
定义和 htmlyem 标记数目一致的数组
StringBuilder htmltext=new StringBuilder();
try
{
  using (StreamReader sr = new StreamReader(" 存放模板页面的路径和页面名 "))
  {
   String line;
   while ((line = sr.ReadLine()) != null)
   {
    htmltext.Append(line);
   }
   sr.Close();
  }
}
catch
{
  Response.Write(" Script alert(' 读取文件错误 ') /Script ");
}

//---------------------
给标记数组赋值 ------------

format[0]="background=/"bg.jpg/"";//
背景图片
format[1]= "#990099";//
字体颜色
format[2]="150px";//
字体大小
format[3]= "
marquee >生成的模板 html 页面< /marquee ";// 文字说明
//----------
替换 htm 里的标记为你想加的内容
for(int i=0;i
4;i++)
{
  htmltext.Replace("$htmlformat["+i+"]",format[i]);
}

//----------
生成 htm 文件 ------------------――

try
{
  using(StreamWriter sw=new StreamWriter(" 存放路径和页面名 ",false,System.Text.Encoding.GetEncoding("GB2312")))
  {
   sw.WriteLine(htmltext);
   sw.Flush();
   sw.Close();
  }
}
catch
{
  Response.Write ("The file could not be wirte:");
}
·                                
   小结

  用此方法可以方便的生成 html 文件。程序使用了是循环替换,因此对需替换大量元素的模板速度非常快。
 
 
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值