asp.net

位置:IT落伍者 >> asp.net >> 浏览文章

利用ASP.NET动态生成HTML页面


发布日期:2020年07月26日
 
利用ASP.NET动态生成HTML页面
思路

利用如DwMx这样的工具生成html格式的模板在需要添加格式的地方加入特殊标记(如$htmlformat$)动态生成文件时利用代码读取此模板然后获得前台输入的内容添加到此模板的标记位置中生成新文件名后写入磁盘写入后再向数据库中写入相关数据

使用后台代码硬编码Html文件可以使用HtmlTextWriter类来写html文件

优点

可以建立非常复杂的页面利用包含js文件的方法在js文件内加入documentwrite()方法可以在所有页面内加入如页面头广告等内容

静态html文件利用MS Windows的Index Server可以建立全文搜索引擎利用可以以DataTable的方式得到搜索结果而Win的Index服务无法查找xml文件的内容如果包括了数据库搜索与Index索引双重查找那么此搜索功能将非常强大

节省服务器的负荷请求一个静态的html文件比一个aspx文件服务器资源节省许多

缺点

思路二 如果用硬编码的方式工作量非常大需要非常多的html代码调试困难而且使用硬编码生成的html样式无法修改如果网站更换样式那么必须得重新编码给后期带来巨大的工作量

因此这里采用的是第一种思路

示列代码

定义()html模板页面

<html>

<head>

<title></title>

<meta httpequiv=ContentType 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 = srReadLine()) != null)

{

htmltextAppend(line)

}

srClose()

}

}

catch

{

ResponseWrite(<Script>alert(读取文件错误)</Script>

}

//给标记数组赋值

format[]=background=\bgjpg\;//背景图片

format[]= #;//字体颜色

format[]=px;//字体大小

format[]= <marquee>生成的模板html页面</marquee>;//文字说明

//替换htm里的标记为你想加的内容

for(int i=;i<;i++)

{

htmltextReplace($htmlformat[+i+]format[i])

}

//生成htm文件――

try

{

using(StreamWriter sw=new StreamWriter(存放路径和页面名falseSystemTextEncodingGetEncoding(GB)))

{

swWriteLine(htmltext)

swFlush()

swClose()

}

}

catch

{

ResponseWrite (The file could not be wirte:

}

小结

用此方法可以方便的生成html文件程序使用了是循环替换因此对需替换大量元素的模板速度非常快               

上一篇:Asp.net中DataGrid控件的自定义分页

下一篇:当Asp.Net验证控件遇到FCKeditor