思路
利用如Dw
Mx這樣的工具生成html格式的模板
在需要添加格式的地方加入特殊標記(如$htmlformat$)
動態生成文件時利用代碼讀取此模板
然後獲得前台輸入的內容
添加到此模板的標記位置中
生成新文件名後寫入磁盤
寫入後再向數據庫中寫入相關數據
使用後台代碼硬編碼Html文件
可以使用HtmlTextWriter類來寫html文件
優點
可以建立非常復雜的頁面
利用包含js文件的方法
在js文件內加入document
write()方法可以在所有頁面內加入如頁面頭
廣告等內容
靜態html文件利用MS Windows
的Index Server可以建立全文搜索引擎
利用可以以DataTable的方式得到搜索結果
而Win
的Index服務無法查找xml文件的內容
如果包括了數據庫搜索與Index索引雙重查找
那麼此搜索功能將非常強大
節省服務器的負荷
請求一個靜態的html文件比一個aspx文件服務器資源節省許多
缺點
思路二
如果用硬編碼的方式
工作量非常大
需要非常多的html代碼
調試困難
而且使用硬編碼生成的html樣式無法修改
如果網站更換樣式
那麼必須得重新編碼
給後期帶來巨大的工作量
因此這裡采用的是第一種思路
示列代碼
定義()html模板頁面
<html>
<head>
<title></title>
<meta http
equiv=
Content
Type
content=
text/html; charset=gb
>
</head>
<body >
<table $htmlformat[
] height=
%
border=
width=
%
cellpadding=
cellspacing=
bgcolor=
#eeeeee
>
<tr>
<td width=
%
valign=
middle
align=
left
>
<span >$htmlformat[
]</span>
</td>
</tr>
</table>
</body>
</html>
代碼
//
讀html模板頁面到stringbuilder對象裡
string[] format=new string[
];//定義和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[
]=
background=\
bg
jpg\
;//背景圖片
format[
]=
#
;//字體顏色
format[
]=
px
;//字體大小
format[
]=
<marquee>生成的模板html頁面</marquee>
;//文字說明
//
替換htm裡的標記為你想加的內容
for(int i=
;i<
;i++)
{
htmltext
Replace(
$htmlformat[
+i+
]
format[i])
}
//
生成htm文件
――
try
{
using(StreamWriter sw=new StreamWriter(
存放路徑和頁面名
false
System
Text
Encoding
GetEncoding(
GB
)))
{
sw
WriteLine(htmltext)
sw
Flush()
sw
Close()
}
}
catch
{
Response
Write (
The file could not be wirte:
)
}
小結
用此方法可以方便的生成html文件
程序使用了是循環替換
因此對需替換大量元素的模板速度非常快
From:http://tw.wingwit.com/Article/program/net/201311/11467.html