现在是想根据HTML模板填充数据生成HTML静态页面。但现在写的方法很不灵活是在C#代码中拼接的HMTL标记。求好的实现方法。 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title> <!--PageTitile--> </title>
</head>
<body>
<!--Header-->
<!--HotInfo-->
<h1> <!--Call-Board--> </h1>
<!--Footer-->
</body>
</html> 现在这个就是我的模板例子。我给他都读出来,然后替换字符串。一个一个得循环,假如遇见 <!--HotInfo-->了。我就是了,这里需要插入热门信息。我就后台拼接标记和数据用Table的字符串替换,连接样式都拼接好。但以后我要生成第二套网站了,数据都一样。只是HotInfo不用想这种Table样式了。我就很难办了,我就要该代码了。
希望大家帮忙。。 看看了xslt+xml的模式但看的比较晕。还是希望能用C#的方式解决。希望通用一点,不用我每次都要去拼接
感谢
把一个页面变成静态的是很容易,但我想解决的不是这个问题。。 我现在的网站用的架构松散耦合比较好了。所需要的数据在BLL了一调用就OK了。现在要扩展出好多静态页面来。我不去写aspx页面了。然后美工定义出N多套模板了。真的有N多套模板。所谓模板就是纯HTML页面。在需要数据的地方预留出特殊标记。我从后台服务中去替换。 现在我是不能把HTML和后台数据很好的分离开。 比如一个地方需要一段数据 <Table> 然后我就后台拼接 sb.Append(" <td>" + PerformDate + "-" + PerformEndDate + " </td>"); 类似这样的。假如说到第二套模板了,不用Table显示了。或样式变了,我就没办法了。还需要重新拼写。 很不爽 N套 N套我只求尽量的能把HTML标签和C#代码分离开。。要想再后台去拼接HTML标签了
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title> <!--PageTitile--> </title>
</head>
<body>
<!--Header-->
<!--HotInfo-->
<h1> <!--Call-Board--> </h1>
<!--Footer-->
</body>
</html> 现在这个就是我的模板例子。我给他都读出来,然后替换字符串。一个一个得循环,假如遇见 <!--HotInfo-->了。我就是了,这里需要插入热门信息。我就后台拼接标记和数据用Table的字符串替换,连接样式都拼接好。但以后我要生成第二套网站了,数据都一样。只是HotInfo不用想这种Table样式了。我就很难办了,我就要该代码了。
希望大家帮忙。。 看看了xslt+xml的模式但看的比较晕。还是希望能用C#的方式解决。希望通用一点,不用我每次都要去拼接
感谢
把一个页面变成静态的是很容易,但我想解决的不是这个问题。。 我现在的网站用的架构松散耦合比较好了。所需要的数据在BLL了一调用就OK了。现在要扩展出好多静态页面来。我不去写aspx页面了。然后美工定义出N多套模板了。真的有N多套模板。所谓模板就是纯HTML页面。在需要数据的地方预留出特殊标记。我从后台服务中去替换。 现在我是不能把HTML和后台数据很好的分离开。 比如一个地方需要一段数据 <Table> 然后我就后台拼接 sb.Append(" <td>" + PerformDate + "-" + PerformEndDate + " </td>"); 类似这样的。假如说到第二套模板了,不用Table显示了。或样式变了,我就没办法了。还需要重新拼写。 很不爽 N套 N套我只求尽量的能把HTML标签和C#代码分离开。。要想再后台去拼接HTML标签了
在html模板中定义好自己的关键字,当然要与html自己的标签有区别,然后用正则匹配替换自己的关键字,
Example:
<[M]>
<h1> <[v]></[v]> </h1>
</[M]>
假定M是循环替换的,v表示多值,那替换以后的结果就是
<h1> 1</h1>
<h1> 2</h1>
<h1> 3</h1>......
你替换的东西只和你的数据有关,你的关键字只和数据关联,关键字嵌套的是什么你不用关系你说的HotInfo之类全部可以这样实现,定义成模板。你只负责读取数据,根据关键字替换模板
或用过伪静态实现静态页面
server.EXECUTE
例如
public static readonly string htmlb = "<html>.....";
public static readonly string htmlE = ".....</html>";
StringBuilder sb = StringBuilber();
sb.append(htmlb)
sb.append(内容)
sb.append(其他格式)
......
sb.append(htmae)
reutrn sb.tostring()