Home  >  Article  >  Backend Development  >  Sharing the method of dynamically generating html pages in Asp.net

Sharing the method of dynamically generating html pages in Asp.net

高洛峰
高洛峰Original
2017-02-03 15:10:061312browse

This function is suitable for web sites with weak back-end database functions, that is, most of the text is not stored in database records, but in html files or xml files. Only the index is placed in the database, such as article titles. , categories, query keywords, etc. This is suitable for Web sites that do not have database support such as MS Sql Server in the background.
Suitable for news release systems, such as sina, 163, etc., which use dynamically generated html pages.
Suitable for programs that need to dynamically customize pages. Such as forums, chat rooms, etc. Customized html pages can be loaded to enhance the aesthetics.
Ideas
1. Use a tool such as Dw-Mx to generate a template in html format, add special tags (such as $htmlformat$) where the format needs to be added, and use code to read this template when generating files dynamically. Then obtain the content input by the front desk, add it to the marked position of this template, generate a new file name and write it to the disk, and then write the relevant data to the database.
2. Use the background code to hardcode the Html file. You can use the HtmlTextWriter class to write the html file.
Advantages
1. You can create very complex pages. By using the method of including js files, adding the document.write() method in the js file can add content such as page headers, advertisements, etc. to all pages.
2. Static html files can use the Index Server of MS Windows2000 to establish a full-text search engine, and use asp.net to obtain search results in the form of DataTable. The Index service of Win2000 cannot find the content of the xml file. If it includes database search and Index index dual search, then this search function will be very powerful.
3. Save server load. Requesting a static html file saves many server resources than an aspx file.
Disadvantages
Idea 2: If you use hard coding, the workload will be very large and a lot of html code will be required. Debugging is difficult. Moreover, the HTML style generated using hard coding cannot be modified. If the website changes the style, it must be recoded, which will bring a huge workload in the later stage.
Therefore, the first idea is adopted here
List of codes
1. Define (template.htm) html template page

<html> 
<head> 
<title></title> 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 
</head> 
<body > 
<table $htmlformat[0] height="100%" border="0" width="100%" cellpadding="10" cellspacing="0" bgcolor="#eeeeee" style="border:1px solid #000000"> 
<tr> 
<td width="100%" valign="middle" align="left"> 
<span style="color: $htmlformat[1];font-size: $htmlformat[2]">$htmlformat[3]</span> 
</td> 
</tr> 
</table> 
</body> 
</html>

2.asp.net code:

//---------------------读html模板页面到stringbuilder对象里---- 
string[] format=new string[4];//定义和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(&#39;读取文件错误&#39;)</Script>"); 
} 
//---------------------给标记数组赋值------------ 
format[0]="background=/"bg.jpg/"";//背景图片 
format[1]= "#990099";//字体颜色 
format[2]="150px";//字体大小 
format[3]= "<marquee>生成的模板html页面</marquee>";//文字说明 
//----------替换htm里的标记为你想加的内容 
for(int i=0;i<4;i++) 
{ 
htmltext.Replace("$htmlformat["+i+"]",format[i]); 
} 
//----------生成htm文件------------------ 
try 
{ 
using(StreamWriter sw=new StreamWriter("存放路径和页面名",false,System.Text.Encoding.GetEncoding("GB2312"))) 
{ 
sw.WriteLine(htmltext); 
sw.Flush(); 
sw.Close(); 
} 
} 
catch 
{ 
Response.Write ("The file could not be wirte:"); 
}

Summary
Using this method, you can easily generate html files. The program uses loop replacement, so it is very fast for templates that need to replace a large number of elements.

For more information on how Asp.net can dynamically generate html pages and share related articles, please pay attention to the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn