隔壁人妻偷人bd中字_特黄特黄一级片_国产午夜大地久久_污色网站在线观看_a天堂资源在线观看_精品日韩久久久_欧美日韩福利在线_欧美日韩一区二区在线免费观看_欧美大尺度做爰床戏_国产情侣av自拍

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

根據(jù)頁(yè)面模板動(dòng)態(tài)生成html頁(yè)面

博客網(wǎng) 2008/1/7 21:31:06 admin 字體: 瀏覽 31872

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


注:此類中的代碼不全是原創(chuàng),部份代碼參照網(wǎng)友的代碼!

以下是轉(zhuǎn)換類的代碼


代碼
1using System;
2using System.Text;
3using System.Web;
4using System.Configuration;
5using System.IO;
6namespace solucky
7{
8 /**////
9 /// AspxToHtml 的摘要說(shuō)明。
10 /// 注:使用此類,你可以在web.config文件對(duì)模板類進(jìn)行配置.如下
11 /**//*
12
13
14
15 */
16 /**////
17 public class AspxToHtml
18 {
19 /**////
20 /// 模板文件中要替代的參數(shù)個(gè)數(shù)
21 ///
22 private int _templateParamCount=0;
23 /**////
24 /// 模板文件所在的路徑
25 ///
26 private string _templateFilePath
=ConfigurationSettings.AppSettings["templateFilePath"];
27 /**////
28 /// 轉(zhuǎn)換后的html文件所存放的路徑
29 ///
30 private string _htmlFilePath
=ConfigurationSettings.AppSettings["htmlFilePath"];
31
32 /**////
33 /// 模板頁(yè)頁(yè)面編碼
34 ///
35 private Encoding _templateHtmlCode
=Encoding.GetEncoding("gb2312");
36
37 /**////
38 /// 轉(zhuǎn)換后的文件編碼
39 ///
40 private Encoding _code = Encoding.GetEncoding("gb2312");
41
42 /**////
43 /// 轉(zhuǎn)換后的html文件名
44 ///
45 private string _convertedFilename="";
46 /**////
47 /// 模板文件中的參數(shù)
48 ///
49 private string[] _templateFileparameter ;
50
51 /**////
52 /// aspx文件中的要代替HTML文件中的參數(shù)實(shí)際值
53 ///
54 private string[] _aspxFileparameter;
55
56 private string _errlogPath = ConfigurationSettings.AppSettings["ErrLogPath"];
57
58 屬性#region 屬性
59
60 /**////
61 /// 模板文件中要替代的參數(shù)個(gè)數(shù)
62 ///
63 public int TemplateParamCount
64 {
65 get
66 {
67 return this._templateParamCount;
68 }
69 set//分配參數(shù)個(gè)數(shù)時(shí),同時(shí)為模板文件中的參數(shù)和aspx文件中的要代替
HTML文件中的參數(shù)實(shí)際值這兩個(gè)分配實(shí)際數(shù)組
70 {
71 if (value < 0)
72 throw new ArgumentException();
73
74 if(value>0)
75 {
76 this._templateParamCount=value;
77 //模板文件中的參數(shù)
78 _templateFileparameter = new string[value];
79 //aspx文件中的要代替HTML文件中的參數(shù)實(shí)際值
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 /// 轉(zhuǎn)換后的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 /// 錯(cuò)誤文件所在路徑
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 /// 獲取轉(zhuǎn)換后的html文件所在相對(duì)文件路徑
142 /// 如:如果HtmlFilePath="/news/"
143 /// 轉(zhuǎn)換后的html文件名為200505050505.html
144 /// 則返回的值為/news/200505050505.html
145 ///
146 /// 如果在未調(diào)用StartConvert方法之前調(diào)用此屬性則返回
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頁(yè)面參數(shù)數(shù)組付值
160 ///
161 ///
162 public void setTemplateFileparameter(string[] param)
163 {
164 try
165 {
166 if(param.Length==this.TemplateParamCount)
167 this._templateFileparameter=param;
168 //else//與原定義的個(gè)數(shù)不等
169 //
170 }
171 catch(System.Exception ex)
172 {
173 WriteErrFile(ex);
174 }
175 }
176 /**////
177 /// 為aspx文件中將要替換html文件中的參數(shù)數(shù)組付值
178 ///
179 ///
180 public void setAspxFileparameter(string[] param)
181 {
182 try
183 {
184 if(param.Length==this.TemplateParamCount)
185 this._aspxFileparameter=param;
186 //else//與原定義的個(gè)數(shù)不等
187 //
188 }
189 catch(System.Exception ex)
190 {
191 WriteErrFile(ex);
192 }
193 }
194 /**////
195 /// 開始進(jìn)行aspxTohtml轉(zhuǎn)換
196 ///
197 /// 返回值為成功創(chuàng)建后的文件名稱
198 /// 在調(diào)用此方法之前必需確定已調(diào)用setTemplateFileparameter 和
setAspxFileparameter方法進(jìn)行相應(yīng)的付值操作
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 /// 開始進(jìn)行aspxTohtml轉(zhuǎn)換
211 ///
212 /// html模板頁(yè)中的所有參數(shù)數(shù)組
213 /// aspx頁(yè)面中要代替html模板頁(yè)中參數(shù)值數(shù)組

214 /// 返回值為成功創(chuàng)建后的文件名稱
215 public string StartConvert(string[] htmlparam,string[] aspxparam)
216 {
217 //先調(diào)用setTemplateFileparameter 和setAspxFileparameter方法,進(jìn)行付值
操作
218 setTemplateFileparameter(htmlparam);
219 setAspxFileparameter(aspxparam);
220 //
221 string fn=this.StartConvert();
222 //
223 _convertedFilename=fn;
224 //
225 return fn;
226 }
227
228 /**////
229 /// 用時(shí)間加隨機(jī)數(shù)生成一個(gè)文件名
230 ///
231 ///
232 private string getfilename()
233 {
234 //用時(shí)間加隨機(jī)數(shù)生成一個(gè)文件名
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 /// 進(jìn)行轉(zhuǎn)換處理
249 ///
250 /// 返回以時(shí)間命名的文件名
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 // 替換內(nèi)容
274 // 這時(shí),模板文件已經(jīng)讀入到名稱為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 /// 傳入U(xiǎn)RL返回網(wǎng)頁(yè)的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 構(gòu)造#region 構(gòu)造
341
342 public AspxToHtml()
343 {
344 //
345 // TODO: 在此處添加構(gòu)造函數(shù)邏輯
346 //
347 }
348
349 private void settemplateParamCount(int templateParamCount)
350 {
351 if (templateParamCount>0)
352 this.TemplateParamCount=templateParamCount;
353 }
354 /**////
355 /// 提供欲代替的參數(shù)個(gè)數(shù)
356 ///
357 ///
358 public AspxToHtml(int templateParamCount)
359 {
360 settemplateParamCount(templateParamCount);
361
362 }
363 /**////
364 ///
365 ///
366 /// html模板頁(yè)中的參數(shù)個(gè)數(shù)
367 /// 生成的html文件所存放的文件夾路徑
368 /// html模板頁(yè)路徑
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 /// 把錯(cuò)誤寫入文件方法#region 把錯(cuò)誤寫入文件方法
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("錯(cuò)誤日期:" + System.DateTime.Now);
391 sw1.WriteLine("錯(cuò)誤描述:" + ee.Message);
392 sw1.WriteLine("錯(cuò)誤名稱:" + ee.Source);
393 sw1.WriteLine("詳細(xì):" + ee.ToString());
394 sw1.WriteLine("*************************************************");
395 sw1.Close();
396 }
397 #endregion

相關(guān)閱讀
AJAX彈出提示信息效果與lightbox效果一樣
旅游線路系統(tǒng)
張掖春秋國(guó)際旅行社有限公司
rs操作數(shù)據(jù)表記錄集對(duì)象的方法
仿mop分頁(yè)代碼
python退出while循環(huán)break、return、continue
dreawmeaver中鮮為人知的小秘訣,讓你制作網(wǎng)頁(yè)更加隨心所欲.
jQuery設(shè)置提交表單disabled屬性所有input、button、extarea、select、checkbox、radio都生效
共有0條關(guān)于《根據(jù)頁(yè)面模板動(dòng)態(tài)生成html頁(yè)面》的評(píng)論
發(fā)表評(píng)論
正在加載評(píng)論......
返回頂部發(fā)表評(píng)論
呢 稱:
表 情:
內(nèi) 容:
評(píng)論內(nèi)容:不能超過(guò) 1000 字,需審核,請(qǐng)自覺遵守互聯(lián)網(wǎng)相關(guān)政策法規(guī)。
驗(yàn)證碼: 驗(yàn)證碼 
網(wǎng)友評(píng)論聲明,請(qǐng)自覺遵守互聯(lián)網(wǎng)相關(guān)政策法規(guī)。

您發(fā)布的評(píng)論即表示同意遵守以下條款:
一、不得利用本站危害國(guó)家安全、泄露國(guó)家秘密,不得侵犯國(guó)家、社會(huì)、集體和公民的合法權(quán)益;
二、不得發(fā)布國(guó)家法律、法規(guī)明令禁止的內(nèi)容;互相尊重,對(duì)自己在本站的言論和行為負(fù)責(zé);
三、本站對(duì)您所發(fā)布內(nèi)容擁有處置權(quán)。

更多信息>>欄目類別選擇
百度小程序開發(fā)
微信小程序開發(fā)
微信公眾號(hào)開發(fā)
uni-app
asp函數(shù)庫(kù)
ASP
DIV+CSS
HTML
python
更多>>同類信息
ASP.NET中Cookie編程的基礎(chǔ)知識(shí)
ASP.NET 2.0跨網(wǎng)頁(yè)提交的三法
ASP.NET 2和IIS 7.0發(fā)生不兼容變化
ASP.NET中文亂碼問(wèn)題的解決。
ASP.Net 2.0中的5個(gè)數(shù)據(jù)控件
根據(jù)頁(yè)面模板動(dòng)態(tài)生成html頁(yè)面
更多>>最新添加文章
dw里面查找替換使用正則刪除sqlserver里面的CONSTRAINT
Android移動(dòng)端自動(dòng)化測(cè)試:使用UIAutomatorViewer與Selenium定位元素
抖音直播音掛載小雪花 懂車帝小程序
javascript獲取瀏覽器指紋可以用來(lái)做投票
火狐Mozilla Firefox出現(xiàn):無(wú)法載入您的Firefox配置文件 它可能已經(jīng)丟失 或是無(wú)法訪問(wèn) 問(wèn)題解決集合處理辦法
在Android、iOS、Windows、MacOS中微信小程序的文件存放路徑
python通過(guò)代碼修改pip下載源讓下載庫(kù)飛起
python里面requests.post返回的res.text還有其它的嗎
更多>>隨機(jī)抽取信息
易游天下通-中南國(guó)際旅游公司
把以前的做的個(gè)人網(wǎng)站程序提供下載,程序大了點(diǎn),不過(guò)全
用dl、dt、dd制作個(gè)性表格
微信小程序-接入廣告
微軟公司的三道面試題目看了會(huì)有意想不到的收獲
asp利用XMLHTTP加載動(dòng)態(tài)頁(yè)面并且生成靜態(tài)頁(yè)面
隔壁人妻偷人bd中字_特黄特黄一级片_国产午夜大地久久_污色网站在线观看_a天堂资源在线观看_精品日韩久久久_欧美日韩福利在线_欧美日韩一区二区在线免费观看_欧美大尺度做爰床戏_国产情侣av自拍
国产成人无码一区二区在线观看| 小嫩苞一区二区三区| 91激情在线视频| 国产精品视频你懂的| 狠狠色狠狠色合久久伊人| 激情综合丁香五月| 欧美一级理论性理论a| 亚洲v精品v日韩v欧美v专区| 日本亚洲一区二区三区| 91福利国产精品| 一区二区免费在线| 日本一区二区三区在线免费观看| 日本道免费精品一区二区三区| 日韩理论片中文av| 91麻豆国产自产在线观看| 欧美这里有精品| 亚洲一线二线三线久久久| 乱码一区二区三区| 制服.丝袜.亚洲.另类.中文 | 日韩一区二区三区三四区视频在线观看 | 亚洲男同性恋视频| 91免费在线视频观看| 欧美综合视频在线观看| 亚洲午夜久久久久久久久电影院| 免费高清视频在线观看| 欧美日韩一区二区在线观看视频| 亚洲国产精品尤物yw在线观看| 中文字幕视频观看| 日韩欧美黄色影院| 黄页视频在线91| 免费成人深夜夜行网站| 中文字幕中文字幕一区| 99国产精品99久久久久久| 欧美性大战久久久久久久| 欧美日韩综合不卡| 亚洲成a人片在线不卡一二三区| 国产精品伦子伦| 久久综合久久久久88| 国产suv精品一区二区三区 | 激情久久久久久久久久久久久久久久 | 成人久久视频在线观看| 欧美中文字幕一区| 日韩制服丝袜先锋影音| 日本理论中文字幕| 亚洲人成人一区二区在线观看| 亚洲av无码久久精品色欲| 欧美一级日韩不卡播放免费| 国内成人精品2018免费看| 午夜国产小视频| 一二三四区精品视频| 精品人妻一区二区三区日产乱码卜| 久久久777精品电影网影网| 成人蜜臀av电影| 欧美日韩精品系列| 国产综合色精品一区二区三区| 一本色道亚洲精品aⅴ| 亚洲一二三区在线观看| 中文字幕在线观看免费高清 | 特级西西人体高清大胆| 亚洲欧美激情一区二区| 大黑人交xxx极品hd| 国产精品久久久久天堂| av在线播放网址| 欧美色图12p| 久久精品国产久精国产| 色综合久久88色综合天天免费| 视频一区视频二区在线观看| 欧美视频一区二区在线| 午夜精品久久久久久久99樱桃| 91麻豆制片厂| 亚洲成人精品影院| 波多野结衣喷潮| 日韩高清不卡一区二区三区| 杨钰莹一级淫片aaaaaa播放| 日本亚洲一区二区| 91国偷自产一区二区使用方法| 美女视频黄久久| 欧美图区在线视频| 国产成人av自拍| 日韩一区二区三区视频在线观看 | 国产视频一区在线观看| 俄罗斯黄色录像| 国产精品拍天天在线| 无码人妻aⅴ一区二区三区| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 免费的av网站| 亚洲黄色av一区| 欧美特黄一级片| 美女视频黄a大片欧美| 欧美日韩高清一区二区不卡| 国产91丝袜在线观看| 精品久久五月天| 欧美图片自拍偷拍| 最近日韩中文字幕| www中文在线| 日本一道高清亚洲日美韩| 欧美性猛交xxxxxx富婆| 国产91丝袜在线18| 久久九九久久九九| 超碰男人的天堂| 亚洲国产三级在线| 91极品美女在线| 成人黄色a**站在线观看| 久久综合久久综合亚洲| 爱爱的免费视频| 午夜天堂影视香蕉久久| 欧美性生交片4| 不卡av在线网| 国产精品精品国产色婷婷| 国产又粗又硬视频| 久久精品国产一区二区三| 欧美一区二区三区的| 蜜桃色一区二区三区| 亚洲自拍另类综合| 在线观看91精品国产入口| 99综合影院在线| 一区在线观看免费| 久久r这里只有精品| 国产成人av电影在线| 国产日韩v精品一区二区| 免费一级黄色录像| 极品美女销魂一区二区三区| 欧美成人精品1314www| 中文字幕免费看| 青青国产91久久久久久| 日韩亚洲欧美综合| 亚洲午夜久久久久久久久红桃 | 国产精品白丝av| 国产日本欧美一区二区| 又色又爽的视频| 国产suv精品一区二区6| 国产精品久久久久久久午夜片 | 成人免费小视频| 一本大道久久a久久综合婷婷| 成人动漫中文字幕| 亚洲人成精品久久久久| 在线精品观看国产| 极品白嫩的小少妇| 日韩激情视频网站| 精品蜜桃在线看| 免费看的黄色录像| 懂色av一区二区夜夜嗨| 亚洲色图欧洲色图婷婷| 欧美午夜理伦三级在线观看| 美女露出粉嫩尿囗让男人桶| 视频一区二区不卡| 精品欧美一区二区久久| 中文字幕黄色网址| 成人爽a毛片一区二区免费| 亚洲欧美视频在线观看| 欧美日韩美少妇| 第四色在线视频| 久久91精品久久久久久秒播| 337p日本欧洲亚洲大胆色噜噜| 性爱在线免费视频| 91在线国产福利| 五月婷婷欧美视频| 26uuu另类欧美亚洲曰本| 国产成人免费在线观看视频| 99精品在线免费| 午夜激情一区二区三区| 精品国产一区二区精华| 麻豆网址在线观看| 亚洲妇女无套内射精| 青椒成人免费视频| 中文天堂在线一区| 欧美特级限制片免费在线观看| 黑丝av在线播放| 国产精品白丝jk黑袜喷水| 一区二区三区丝袜| 欧美xxxx在线观看| 国产精品三区在线观看| 国产老头和老头xxxx×| 美女视频免费一区| 1区2区3区精品视频| 欧美一级国产精品| 五月天免费网站| 久久久国产精品久久久| 久久精品二区亚洲w码| 一区在线观看视频| 日韩欧美国产成人一区二区| 日韩va亚洲va欧美va清高| 日本在线不卡一区二区| 国产乱淫av一区二区三区| 一个色综合av| 国产亚洲精久久久久久| 欧美日韩国产综合一区二区三区 | 一区二区三区在线免费| 日韩精品一区二区三区在线播放| 乱h高h女3p含苞待放| 亚洲天堂资源在线| www.欧美精品一二区| 麻豆精品在线看| 亚洲精品你懂的| 久久蜜桃香蕉精品一区二区三区| 在线精品国精品国产尤物884a| 美女100%露胸无遮挡| 中国男女全黄大片| 国产99精品视频| 精品一区二区三区免费观看|