一种是直接访问动态页面地址,将其生成的html代码保存成静态页面。另一种是通过读取页面模板,对其中需要替换的内容进行替换的方式进行生成。其中前一种方法简单,对于生成单个页面或少量页面比较实用,而对大量的页面且页面之间彼此关联复杂的,第一种就不太方便。对于使用模板的方法稍微复杂,这里不详细讨论,只给出第一种方法应对不太复杂的项目的应用。
using system;
using system.collections.generic;
using system.web;
using system.web.ui;
using system.web.ui.webcontrols;
using system.text.regularexpressions;
namespace webtest
{
public partial class test : system.web.ui.page
{
protected void page_load(object sender, eventargs e)
{
string content = "";
string newcontent = content;
regex rg = new regex("href="); //正则定位到链接
int len = 5; //正则字符长度
matchcollection mc = rg.matches(content);
foreach (match m in mc)
{
int startindex = m.index + len + 1; //定位到的url的起始位置
int endindex = content.indexof(""", m.index + len + 1); //定位到的url的结束位置
string originalurl = content.substring(startindex, endindex - startindex); //获取到url的全地址
string newurl = "";
newurl = originalurl.replace(".aspx?classid=", "-class-"); //产品类型的替换
newurl = newurl.replace(".aspx?id=", "-"); //产品的替换
newurl = newurl.replace(".aspx", "");
newurl += ".html";
newcontent = newcontent.replace(originalurl +""", newurl +"""); //替换掉原url地址为静态地址
}
response.write(string.format("原内容:{0}
新内容:{1}", content.replace("<", "<").replace(">", ">"), newcontent.replace("<", "<").replace(">", ">")));
}
}
}