页面静态化原理:向每个页面发出请求,执行每个页面,然后下载每个页面的源文件,然后保存在服务器文件夹中。
前台代码:
<a href='<%#Eval("Id") %>.htm'><%#Eval("Title") %></a>
WebClient也是一个浏览器,它是向aspx页面发请求获得html内容,不是下载aspx,而是下载aspx执行的结果生成的html !
打开浏览器
WebClient wc = new WebClient();
WebClient是个浏览器,在服务器端,加载http://localhost:4171/Art/ViewArticle.aspx?id=3这个页面,然后利用WebClient的方法DownloadFile方法,把aspx执行的结果生成的html 下载下来,保存在文件夹中,即为静态化。
批量静态化代码:
//批量静态化
protected void btnStatic_Click(object sender, EventArgs e)
{
//从数据库中获取所有文章
RP_ArticleBLL artbll = new RP_ArticleBLL();
var arts = artbll.GetAll();//通过BLL层的GetAll函数获取数据库中的所有文章
//遍历获取的文章,利用wc.DownloadFile把从数据库中获取的文章都下载下来,保存为静态页面,保存在/Art/中
foreach (var art in arts)
{
WebClient wc = new WebClient();
wc.DownloadFile("http://localhost:4171/Art/ViewArticle.aspx?id="+art.Id,Server.MapPath("~/Art/"+art.Id+".htm"));
}
}