您的位置:首页 > 编程语言 > ASP

利用ASP.NET动态生成HTML文件

2008-08-14 22:38 453 查看
利用ASP.Net动态生成HTML文件!

2环境:Microsoft.NETFrameworkSDKv2.0.50727

3OS:WindowsServer2003SP1中文版

4ASP.Net生成静态HTML页

5在.Net中涉及此类操作的是System.IO

6

7实现动态创建HTML文件的功能需要应用StreamReader和StreamWriter类。

8

9在ASP.net中,String对象是不可改变的,每次使用该类中的方法时,都要在内存中创建一个新的字符串对象,这就需要为新对象分配新的空间。在需要对字符串执行重复修改的情况下,就会增加系统开销。如果要修改字符串而不创建新的对象,则可以使用Sysmte.text命名空间下的StringBuilder类,该类可以改变字符串,当在一个循环中将许多字符串连接到一起时,使用StringBuildr类可以提高性能。

10

11实现方法:首先使用StreamReader对象读取指定HTML模板文件内容,并把读取到的内容保存到StringBuilder对象中,然后通过for循环语句依次替换关键字段,最后再通过StreamWriter对象根据替换后新内容创建一个HTML文件。

12

13代码如下:

14

15页面文件:

16

17新闻模板文件(template.html):

18

19 <html>

20 <head>

21 <title>$htmlkey[0]</title>

22 <metahttp-equiv="Content-Type"content="text/html;charset=gb2312">

23 </head>

24 <body>

25 <table$htmlkey[1]height="100%"border="0"width="100%"cellpadding="10"cellspacing="0" bgcolor="#eeeeee"style="border:1pxsolid#000000">

26 <tr>

27 <tdwidth="100%"valign="middle"align="left">

28 <spanstyle="color:$htmlkey[2];font-size:$htmlkey[3]"><marquee>$htmlkey[4]</marquee></span>

29 </td>

30 </tr>

31 </table>

32 </body>

33</html>

34

35

36页面文件:Dhtml.aspx

37

38<%@PageLanguage="C#"AutoEventWireup="true"CodeFile="Dhtml.aspx.cs"Inherits="Dhtml"%>

39

40<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

41

42<htmlxmlns="http://www.w3.org/1999/xhtml">

43<headrunat="server">

44 <title>UntitledPage</title>

45</head>

46<body>

47 <formid="Form1"method="post"runat="server">

48 <asp:Buttonid="btnCreate"style="Z-INDEX:101;LEFT:576px;POSITION:absolute;TOP:48px"

49 runat="server"Text="创建HTML文件"OnClick="btnCreate_Click"></asp:Button>

50 <asp:TextBoxid="txtContent"style="Z-INDEX:102;LEFT:208px;POSITION:absolute;TOP:80px"

51 runat="server"TextMode="MultiLine"Height="402px"Width="352px"></asp:TextBox>

52 <asp:HyperLinkid="hyCreateFile"style="Z-INDEX:103;LEFT:584px;POSITION:absolute;TOP:96px"

53 runat="server"Target="_blank">创建的HTML文件</asp:HyperLink>

54 <asp:TextBoxid="txtTitle"style="Z-INDEX:104;LEFT:208px;POSITION:absolute;TOP:48px"runat="server"

55 Width="352px"></asp:TextBox>

56 <asp:Labelid="Label1"style="Z-INDEX:105;LEFT:128px;POSITION:absolute;TOP:48px"runat="server">页面标题</asp:Label>

57 <asp:Labelid="Label2"style="Z-INDEX:106;LEFT:128px;POSITION:absolute;TOP:80px"runat="server">页面内容</asp:Label>

58 </form>

59</body>

60</html>

61

62

63实现代码:Dhtml.aspx.cs

64

65usingSystem;

66usingSystem.Data;

67usingSystem.Configuration;

68usingSystem.Collections;

69usingSystem.Web;

70usingSystem.Web.Security;

71usingSystem.Web.UI;

72usingSystem.Web.UI.WebControls;

73usingSystem.Web.UI.WebControls.WebParts;

74usingSystem.Web.UI.HtmlControls;

75usingSystem.Text;

76usingSystem.IO;

77

78publicpartialclassDhtml:System.Web.UI.Page

79

147vs2005.net+winserver2003sp1下调试通过

148
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: