成人黄色免费短视频_黄色成人在线观看_欧美日韩国产精品激情在线播放_一区二区亚洲视频_一本一本大道香蕉久在线精品_日韩中文字幕在线不卡_婷婷成人在线_亚洲人成电影在线播放_成人性生交大片免费看午夜_五月天亚洲一区_一区二区三区欧美视频_91在线直播亚洲

訂閱本欄目 RSS您所在的位置: 深山工作室 > asp.net > 正文

根據頁面模板動態生成html頁面

博客網 2008/1/7 21:31:06 admin 字體: 瀏覽 31857

一直以為動態生成靜態頁面不好做,昨天在網上找了下,其實很簡單,思路大概是這樣的,
1:建立一個html頁面模板,在這個頁面中把你想要動態顯示的地方用特殊的字符串表示(如
$htmlstrstr$);
2:在程序中用將這個html頁面讀到一個字符串變量如str;
3:用字符串的resplace方法將在第一步中特殊字符替換成你想要的內容;
4保存;
OK,so easy,今天就用C#寫了一個這樣的類,用來處理動態生成html頁面的,自認為還寫的完
整,剛接觸.NET不久,望指教


注:此類中的代碼不全是原創,部份代碼參照網友的代碼!

以下是轉換類的代碼


代碼
1using System;
2using System.Text;
3using System.Web;
4using System.Configuration;
5using System.IO;
6namespace solucky
7{
8 /**////
9 /// AspxToHtml 的摘要說明。
10 /// 注:使用此類,你可以在web.config文件對模板類進行配置.如下
11 /**//*
12
13
14
15 */
16 /**////
17 public class AspxToHtml
18 {
19 /**////
20 /// 模板文件中要替代的參數個數
21 ///
22 private int _templateParamCount=0;
23 /**////
24 /// 模板文件所在的路徑
25 ///
26 private string _templateFilePath
=ConfigurationSettings.AppSettings["templateFilePath"];
27 /**////
28 /// 轉換后的html文件所存放的路徑
29 ///
30 private string _htmlFilePath
=ConfigurationSettings.AppSettings["htmlFilePath"];
31
32 /**////
33 /// 模板頁頁面編碼
34 ///
35 private Encoding _templateHtmlCode
=Encoding.GetEncoding("gb2312");
36
37 /**////
38 /// 轉換后的文件編碼
39 ///
40 private Encoding _code = Encoding.GetEncoding("gb2312");
41
42 /**////
43 /// 轉換后的html文件名
44 ///
45 private string _convertedFilename="";
46 /**////
47 /// 模板文件中的參數
48 ///
49 private string[] _templateFileparameter ;
50
51 /**////
52 /// aspx文件中的要代替HTML文件中的參數實際值
53 ///
54 private string[] _aspxFileparameter;
55
56 private string _errlogPath = ConfigurationSettings.AppSettings["ErrLogPath"];
57
58 屬性#region 屬性
59
60 /**////
61 /// 模板文件中要替代的參數個數
62 ///
63 public int TemplateParamCount
64 {
65 get
66 {
67 return this._templateParamCount;
68 }
69 set//分配參數個數時,同時為模板文件中的參數和aspx文件中的要代替
HTML文件中的參數實際值這兩個分配實際數組
70 {
71 if (value < 0)
72 throw new ArgumentException();
73
74 if(value>0)
75 {
76 this._templateParamCount=value;
77 //模板文件中的參數
78 _templateFileparameter = new string[value];
79 //aspx文件中的要代替HTML文件中的參數實際值
80 _aspxFileparameter = new string[value];
81 }
82 else
83 this._templateParamCount=0;
84 }
85 }
86
87 /**////
88 /// 模板文件所在的路徑
89 ///
90 ///
91 public string TemplateFilePath
92 {
93 get{ return this._templateFilePath;}
94 set{ this._templateFilePath=value;}
95 }
96 /**////
97 /// 轉換后的html文件所存放的路徑
98 ///
99 public string HtmlFilePath
100 {
101 get{ return this._htmlFilePath;}
102 set{ this._htmlFilePath=value;}
103 }
104
105 /**////
106 /// html模板文件編碼
107 ///
108 public Encoding TemplateHtmlCode
109 {
110 get{ return this._templateHtmlCode;}
111 set{ this._templateHtmlCode=Encoding.GetEncoding(value.ToString());}
112 }
113 /**////
114 /// 編碼
115 ///
116 public Encoding Code
117 {
118 get{ return this._code;}
119 set{ this._code=Encoding.GetEncoding(value.ToString());}
120 }
121 /**////
122 /// 錯誤文件所在路徑
123 ///
124 public string ErrLogPath
125 {
126 get{
127 if(!(this._errlogPath==null))
128 return this._errlogPath;
129 else
130 return "aspxTohtml_log.txt";
131 }
132 set{this._errlogPath=value;}
133 }
134
135
136 #endregion
137
138 操作#region 操作
139
140 /**////
141 /// 獲取轉換后的html文件所在相對文件路徑
142 /// 如:如果HtmlFilePath="/news/"
143 /// 轉換后的html文件名為200505050505.html
144 /// 則返回的值為/news/200505050505.html
145 ///
146 /// 如果在未調用StartConvert方法之前調用此屬性則返回
null
147 public string HtmlFileVirtualPath
148 {
149 get
150 {
151 if(!(this._convertedFilename==""))
152 return this.HtmlFilePath+this._convertedFilename;
153 else
154 return null;
155 }
156 }
157
158 /**////
159 /// 為HTML頁面參數數組付值
160 ///
161 ///
162 public void setTemplateFileparameter(string[] param)
163 {
164 try
165 {
166 if(param.Length==this.TemplateParamCount)
167 this._templateFileparameter=param;
168 //else//與原定義的個數不等
169 //
170 }
171 catch(System.Exception ex)
172 {
173 WriteErrFile(ex);
174 }
175 }
176 /**////
177 /// 為aspx文件中將要替換html文件中的參數數組付值
178 ///
179 ///
180 public void setAspxFileparameter(string[] param)
181 {
182 try
183 {
184 if(param.Length==this.TemplateParamCount)
185 this._aspxFileparameter=param;
186 //else//與原定義的個數不等
187 //
188 }
189 catch(System.Exception ex)
190 {
191 WriteErrFile(ex);
192 }
193 }
194 /**////
195 /// 開始進行aspxTohtml轉換
196 ///
197 /// 返回值為成功創建后的文件名稱
198 /// 在調用此方法之前必需確定已調用setTemplateFileparameter 和
setAspxFileparameter方法進行相應的付值操作
199 public string StartConvert()
200 {
201 if(this._templateFileparameter.Length==this._aspxFileparameter.Length)
202 {
203 return writeFile();
204 }
205 else{
206 return null;
207 }
208 }
209 /**////
210 /// 開始進行aspxTohtml轉換
211 ///
212 /// html模板頁中的所有參數數組
213 /// aspx頁面中要代替html模板頁中參數值數組

214 /// 返回值為成功創建后的文件名稱
215 public string StartConvert(string[] htmlparam,string[] aspxparam)
216 {
217 //先調用setTemplateFileparameter 和setAspxFileparameter方法,進行付值
操作
218 setTemplateFileparameter(htmlparam);
219 setAspxFileparameter(aspxparam);
220 //
221 string fn=this.StartConvert();
222 //
223 _convertedFilename=fn;
224 //
225 return fn;
226 }
227
228 /**////
229 /// 用時間加隨機數生成一個文件名
230 ///
231 ///
232 private string getfilename()
233 {
234 //用時間加隨機數生成一個文件名
235 System.Threading.Thread.Sleep(50);
236 string yearStr = System.DateTime.Now.Year.ToString();
237 string monthStr = string.Format("{0:0#}",System.DateTime.Now.Month);
238 string dayStr = string.Format("{0:0#}",System.DateTime.Now.Day);
239 string hourStr = string.Format("{0:0#}",System.DateTime.Now.Hour);
240 string minuteStr = string.Format("{0:0#}",System.DateTime.Now.Minute);
241 string secondStr = string.Format("{0:0#}",System.DateTime.Now.Second);
242 string millisecondStr = string.Format("{0:000#}",System.DateTime.Now.Millisecond);

243 System.Random rd = new System.Random();
244 return yearStr + monthStr + dayStr + hourStr + minuteStr + secondStr +
millisecondStr + string.Format("{0:0000#}",rd.Next(100))+".html";
245 //return DateTime.Now.ToString("yyyyMMddHHmmss")+".html";
246 }
247 /**////
248 /// 進行轉換處理
249 ///
250 /// 返回以時間命名的文件名
251 private string writeFile()
252 {
253
254 // 讀取模板文件
255 string temp = HttpContext.Current.Server.MapPath(this.TemplateFilePath);
256 StreamReader sr=null;
257 string str="";
258 try
259 {
260 sr = new StreamReader(temp, this.TemplateHtmlCode);
261 str = sr.ReadToEnd(); // 讀取文件
262 }
263 catch(Exception ex)
264 {
265 //HttpContext.Current.Response.Write(exp.Message);
266 //HttpContext.Current.Response.End();
267 WriteErrFile(ex);
268 }
269 finally
270 {
271 sr.Close();
272 }
273 // 替換內容
274 // 這時,模板文件已經讀入到名稱為str的變量中了
275 for(int i=0;i276 {
277 str =str.Replace(this._templateFileparameter[i],this._aspxFileparameter[i]);
278 }
279
280 return savefile(str);
281 }
282
283 /**////
284 ///
285 ///
286 ///
287 ///
288
289 private string savefile(string str)
290 {
291 // 寫文件
292 StreamWriter sw=null;
293 try
294 {
295
296 string path = HttpContext.Current.Server.MapPath(this.HtmlFilePath);
297 //html文件名稱
298 string htmlfilename=getfilename();
299 sw = new StreamWriter(path + htmlfilename , false, this.Code);
300 sw.Write(str);
301 sw.Flush();
302 return htmlfilename;
303 }
304 catch(Exception ex)
305 {
306 WriteErrFile(ex);
307 }
308 finally
309 {
310 sw.Close();
311 }
312 return "";
313 }
314
315 /**////
316 /// 傳入URL返回網頁的html代碼
317 ///
318 /// URL
319 ///
320 public string getUrltoHtml(string Url)
321 {
322 try
323 {
324 System.Net.WebRequest wReq = System.Net.WebRequest.Create(Url);
325 System.Net.WebResponse wResp =wReq.GetResponse();
326 System.IO.Stream respStream = wResp.GetResponseStream();
327 System.IO.StreamReader reader = new System.IO.StreamReader(respStream, System.Text.Encoding.GetEncoding("gb2312"));
328 return savefile(reader.ReadToEnd());
329
330 }
331 catch(System.Exception ex)
332 {
333 WriteErrFile(ex);
334 }
335 return "";
336 }
337 #endregion
338
339
340 構造#region 構造
341
342 public AspxToHtml()
343 {
344 //
345 // TODO: 在此處添加構造函數邏輯
346 //
347 }
348
349 private void settemplateParamCount(int templateParamCount)
350 {
351 if (templateParamCount>0)
352 this.TemplateParamCount=templateParamCount;
353 }
354 /**////
355 /// 提供欲代替的參數個數
356 ///
357 ///
358 public AspxToHtml(int templateParamCount)
359 {
360 settemplateParamCount(templateParamCount);
361
362 }
363 /**////
364 ///
365 ///
366 /// html模板頁中的參數個數
367 /// 生成的html文件所存放的文件夾路徑
368 /// html模板頁路徑
369 public AspxToHtml(int templateParamCount,string htmlFilePath,string
templateFilePath)
370 {
371 settemplateParamCount(templateParamCount);
372 this.HtmlFilePath = htmlFilePath;
373 this.TemplateFilePath = templateFilePath;
374
375 }
376 #endregion
377
378 #region
379
380 /**////
381 /// 把錯誤寫入文件方法#region 把錯誤寫入文件方法
382 ///
383 ///
384 private void WriteErrFile(Exception ee)
385 {
386
387 FileStream fs1 = new
FileStream(HttpContext.Current.Server.MapPath(ErrLogPath), System.IO.FileMode.Append);
388 StreamWriter sw1 = new StreamWriter(fs1);
389 sw1.WriteLine("**************************************************");
390 sw1.WriteLine("錯誤日期:" + System.DateTime.Now);
391 sw1.WriteLine("錯誤描述:" + ee.Message);
392 sw1.WriteLine("錯誤名稱:" + ee.Source);
393 sw1.WriteLine("詳細:" + ee.ToString());
394 sw1.WriteLine("*************************************************");
395 sw1.Close();
396 }
397 #endregion

相關閱讀
Dreamweaver在onLoad運行_onOpen.htm時,發生了以下javascript錯誤
動態返回selected選擇框的代碼說明
Asp得到當月天數的函數方法
純asp根據當前日期計算出相應的星座
高度100%的絕對定位自適應布局技巧
洪江市道德模范評選 - 網絡投票
jQuery設置提交表單disabled屬性所有input、button、extarea、select、checkbox、radio都生效
發布重大事件說明
共有0條關于《根據頁面模板動態生成html頁面》的評論
發表評論
正在加載評論......
返回頂部發表評論
呢 稱:
表 情:
內 容:
評論內容:不能超過 1000 字,需審核,請自覺遵守互聯網相關政策法規。
驗證碼: 驗證碼 
網友評論聲明,請自覺遵守互聯網相關政策法規。

您發布的評論即表示同意遵守以下條款:
一、不得利用本站危害國家安全、泄露國家秘密,不得侵犯國家、社會、集體和公民的合法權益;
二、不得發布國家法律、法規明令禁止的內容;互相尊重,對自己在本站的言論和行為負責;
三、本站對您所發布內容擁有處置權。

更多信息>>欄目類別選擇
百度小程序開發
微信小程序開發
微信公眾號開發
uni-app
asp函數庫
ASP
DIV+CSS
HTML
python
更多>>同類信息
ASP.NET中Cookie編程的基礎知識
ASP.NET 2.0跨網頁提交的三法
ASP.NET 2和IIS 7.0發生不兼容變化
ASP.NET中文亂碼問題的解決。
ASP.Net 2.0中的5個數據控件
根據頁面模板動態生成html頁面
更多>>最新添加文章
dw里面查找替換使用正則刪除sqlserver里面的CONSTRAINT
Android移動端自動化測試:使用UIAutomatorViewer與Selenium定位元素
抖音直播音掛載小雪花 懂車帝小程序
javascript獲取瀏覽器指紋可以用來做投票
火狐Mozilla Firefox出現:無法載入您的Firefox配置文件 它可能已經丟失 或是無法訪問 問題解決集合處理辦法
在Android、iOS、Windows、MacOS中微信小程序的文件存放路徑
python通過代碼修改pip下載源讓下載庫飛起
python里面requests.post返回的res.text還有其它的嗎
更多>>隨機抽取信息
javascript時間顯示01
連云港旅游網
一個不錯的分頁效果
一個利用radio單選選擇框進行變色的網頁效果
揚子國際
uni-app開發微信小程序使用button的open-type為contact調用微信客服不能用view或者js調用
欧美xxxx老人做受| 成年人视频在线| 国产69精品久久久久9999人| 激情五月色综合国产精品| www.欧美精品一二区| 国产精品国产三级国产aⅴ9色| 日韩av地址| 久久天天做天天爱综合色| 欧美人与性动交| eeuss影院www在线播放| 久久久久综合网| 国产精品久久久久久久天堂第1集| 超碰在线观看免费版| 国内精品久久久久影院色| 在线成人免费网站| 欧美在线一卡| 国产成人综合精品三级| 日本久久精品视频| 日本а中文在线天堂| 亚洲精品videosex极品| 成人av在线不卡| 免费欧美一级视频| 这里有精品可以观看| 亚洲色图在线视频| 日本午夜激情视频| 韩国欧美一区| 国产手机精品在线| 久久不见久久见国语| 亚洲女人天堂视频| 国产一级网站视频在线| 国产精品久久久久桃色tv| 欧美三级午夜理伦三级| 欧美a级一区二区| 日韩视频在线观看视频| 99视频一区| 国产精品99久久99久久久二8| 中文字幕日韩亚洲| 777久久久精品| 成人影视在线播放| 欧美日韩aaaaa| 麻豆av在线导航| 欧美精品一区二| 婷婷成人av| 欧美日本一区二区三区四区| 手机亚洲第一页| 91精品一区二区三区久久久久久| 91一区二区三区在线| 日韩在线小视频| 日本国产精品| 久久综合婷婷综合| 99九九99九九九视频精品| 男人艹女人网站| 精品三级av在线| 伊人精品久久| 丁香五月网久久综合| 岛国精品在线观看| 日本在线免费中文字幕| 欧美日本国产视频| 天天干天天玩天天操| 国产精品99久久久久| 国产欧美日韩伦理| 99亚洲伊人久久精品影院| 亚洲精品国偷自产在线99热 | 国产色a在线| 黄色小视频在线免费观看| 91偷拍与自偷拍精品| 91手机在线视频| 午夜精品剧场| 欧美亚洲激情在线| 视频一区视频二区在线观看| 91久久爱成人| 西西裸体人体做爰大胆久久久| 九九九九精品九九九九| 亚洲欧美日韩国产一区| 看一级黄色录像| 精品美女永久免费视频| 欧美jizz18hd性欧美| 亚洲国产福利在线| 四虎国产精品永久在线国在线| 97超碰人人看人人| 国产精品国产三级国产有无不卡| 啦啦啦中文在线观看日本| 夜夜嗨av一区二区三区中文字幕| 日本xxxx高清色视频| 岛国精品视频在线播放| 亚洲色图美国十次| 中文字幕亚洲综合久久筱田步美| 欧美电影在线观看免费| 国产一区二区三区无遮挡| 亚洲男同1069视频| 日本孕妇大胆孕交无码| 欧美成人小视频| 国产一区二区三区精品欧美日韩一区二区三区| 美女的尿口免费视频| 一区二区三区久久精品| 免费日韩视频| 日本福利在线观看| 日本精品免费观看| 精品国产1区2区| 999精品视频在线观看| 成人一区二区电影| 久久精品这里都是精品| 国产 日韩 欧美一区| 日韩精品一区二区三区色偷偷| 午夜精品久久久久久| 日韩一区二区三区精品| 久久手机在线视频| 欧美在线一二三| 成人在线电影在线观看视频| h动漫在线视频| 国产欧美精品一区二区| 亚洲国产毛片完整版| 亚洲成在人线免费观看| 亚洲区欧美区| chinese少妇国语对白| 在线精品高清中文字幕| 99国产精品久久久久久久久久久| 亚洲国产一区二区久久| 2018中文字幕第一页| 精品99999| 国产精品二区一区二区aⅴ污介绍| 亚洲码欧美码一区二区三区| 完全免费av在线播放| 国产精品成人观看视频国产奇米| 中文字幕一区二区在线播放| 国产亚洲第一伦理第一区| 日本福利片在线| 日韩国产精品一区二区| 亚洲毛片在线看| 亚洲男人的天堂在线观看| 精品久久精品| 国产精品蜜臀| 男女小视频在线观看| 亚洲视频一区二区| 91女人视频在线观看| 久久99国产精品视频| melody高清在线观看| 亚洲国产精品成人天堂| 国产精品视频xxx| 制服丝袜亚洲网站| 91麻豆国产自产在线观看| 亚洲a在线视频| 青青草97国产精品麻豆| 日本一极黄色片| 国产一区二区三区视频免费| 亚洲欧美日韩国产综合在线| 自拍自偷一区二区三区| 亚洲欧美激情视频在线观看一区二区三区| 久久亚洲免费| 国产精品高潮呻吟| 国内精品久久久久久久影视蜜臀| 91九色在线porn| 免费特级黄色片| 欧美精品欧美精品系列c| 97色在线观看| 在线观看久久久久久| 精品欧美aⅴ在线网站| 成人精品高清在线| 国产电影一区在线| 亚洲日韩视频| 中文字幕av亚洲精品一部二部| 美女扒开腿让男人桶爽久久软| 午夜成人影视| 狠狠爱免费视频| 干日本少妇视频| 亚洲精品中字| 激情五月综合色婷婷一区二区| 成人xvideos免费视频| 97精品免费视频| 久久男人的天堂| 日韩精品免费看| 日韩美女天天操| 正在播放亚洲一区| 在线观看三级视频欧美| 欧美三级日韩在线| 7777精品伊人久久久大香线蕉完整版| 狠狠久久五月精品中文字幕| 精品视频色一区| 亚州国产精品久久久| 欧美激情xxxxx| xxxxx91麻豆| 九九精品视频在线| 欧美专区在线播放| 国产精品网红福利| 国内一区二区在线视频观看| 国产高清www| 精品国产第一福利网站| 午夜无码国产理论在线| 日本精品裸体写真集在线观看| 日韩经典一区| 成人知道污网站| 国产一区二区色| 日韩电影在线观看永久视频免费网站| 337p日本欧洲亚洲大胆色噜噜| 国产精品国产三级国产专播精品人| 国产精品揄拍一区二区| 精品无人区一区二区三区竹菊| 欧美激情国产日韩| 国产自产在线视频| x88av蜜桃臀一区二区|