生成静态页面的方法 (引用)

 

        一直以来都在做一些电子商务网站,也很少写博客,今天星期天,在公司值班,没有事就写一下我所做的项目是怎样生存成静态页面的。。我接手的这些项目中,有很多模块都是前人所写好的。就好比现在这个生成静态页面的方法,以前不知道它是怎样处理的,因为它是VB写的,我也没有学过VB,它的源码也看不明白。

        今天没有事情就打开它的源码来看,居然看到一个熟悉的类:WebClient ,虽然是VB的代码,但看了一下,不明白的上google找了一下,明白了它是怎样生成静态页面的了。C#做的话其实也很简单,同样是用WebClient类来实现。

   简单的描述一下需求,后台要添加新闻,然后把添加的新闻生成静态页面,例如:test.html这种文件形式。做起来是这样实现的,先做一个动态的新闻页面,即新闻的模板页,然后URL传入新闻ID参数,传到哪里呢?当然是传到新闻动态模板页了,模板页根据不同ID生成不同的新闻;然后调写WebClient的静态方法DownloadString,这个方法重载了两个,一个是string类型的,一个是Uri类型的。我把模板页的URL地址传进去,再给上参数,例如:http://localhost/Assistant/NewsModel.aspx?newsId=78,函数返回的是string,也就是给客户端看到的HTML代码了;这时就可以通过.net来写文件了哈。。思路说到这里了,我想大家实现起来也不是很难。。。。

  另外再贴一小段代码吧:

代码
    /// <summary>
    
/// 生成静态页
    
/// </summary>
    public static void CreateStaticPage(string filepath, string url)
    {
        WebClient wc 
= new WebClient();
        wc.Encoding 
= Encoding.UTF8;
        
string file = wc.DownloadString("http://localhost/Assistant/NewsModel.aspx?newsId=78");
        
using (FileStream fs = new FileStream(HttpContext.Current.Server.MapPath("new/test.html"), FileMode.Create))
        {
            StreamWriter sw 
= new StreamWriter(fs, Encoding.UTF8);
            sw.Write(file);
            fs.Dispose();
            fs.Close();
        }
    }

 

posted @ 2009-11-30 09:15  dakaikai  阅读(270)  评论(0编辑  收藏  举报