好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

C#实现动态生成静态页面的类详解

本文实例讲述了C#实现动态生成静态页面的类。分享给大家供大家参考,具体如下:

动态生成静态页面有许多好处,比如生成html网页有利于被搜索引擎收录。同时,由于减少了数据访问,减轻对数据库访问的压力,提高了网页打开速度。

基本思路:

使用一个字符串作为页面模板,再页面中包含用若干标志(用 {标志名} 表示),生成页面时,将标志替换为对应的值。

实现方法:

在初始化TextTemplate实例时读入模板,以标志为分割点将模板分割成几部分,生成页面时只需简单的将模板内容和标志的值连接起来。例如:
假如有一个模板 ABCD{TAG1}EFG{TAG2}HIJ{TAG3}KMUN
初始化时将模板分割成 "ABCD","EFG","HIJ","KMUN"四个字符串,
假设TAG1=[123],TAG2=[456],TAG3=[789]
则生成是相当于执行"ABCD"+"123"+"EFG"+"456"+"HIJ"+"789"+"KMUN"

代码:

?

using System;

using System.Collections.Generic;

using System.Text;

using System.Text.RegularExpressions;

using System.Collections;

using System.IO;

/// <summary>

/// 表示一个文本模板,该类使用一个字符串作为模板,通过将模板中的标志替换为对应的值(模板中的标志用 {标志名} 表示)生成新的文本

/// </summary>

/// <example>以下代码用文本模板生成IMG标志

/// <code>

/// static class Program

/// {

///  [STAThread]

///  static void Main()

///  {

///   TextTemplate temp = new TextTemplate("&lt;img src='{src}' id="codetool">

实例代码:

?

static class Program

{

  [STAThread]

  static void Main()

  {

   TextTemplate temp = new TextTemplate( "<img src='{src}' id="codetool">

输出为:

<img src='pic.bmp' xml" id="highlighter_765033">

?

<? xml version = "1.0" ?>

< configuration xmlns = "http://schemas.microsoft测试数据/.NetConfiguration/v2.0" >

  < appSettings ></ appSettings >

  < connectionStrings >

   < add

    name = "DJDB.LocalSqlServer"

    connectionString = "{CONNECTIONSTRING}"

    providerName = "System.Data.SqlClient"

   />

  </ connectionStrings >

  其他配置

</ configuration >

在设置标志 CONNECTIONSTRING 的值即可,这种方法比用XMLDocument类要方便得多。

总结:

TextTemplate的优点有:

1、模板只在初始化时就分析并分割存储,当使用同一模板生成多个页面时,只是简单的件模板内容和标志的值连接起来,不需要每次都去分析模板,如果使用string的Replace方法则每一次都要去分析字符串,而且如果标志值中含有标志,会影响生成的页面。

2、模板可以从文件读入,因此模板文件可以使用各种网页制作工具编辑。

希望本文所述对大家C#程序设计有所帮助。

dy("nrwz");

查看更多关于C#实现动态生成静态页面的类详解的详细内容...

  阅读:49次