各位老大,自己编写的文件都是以.asp为文件后缀,怎么能把它转换成以.html为后缀的文件?像sohu网站的新闻系统那样,显示出来的网址都是.html文件.

解决方案 »

  1.   

    http://community.csdn.net/Expert/topic/3870/3870986.xml?temp=.3896753
      

  2.   

    晕倒了,asp技术是无状态连接的,你请求的页面,然后自动生成html送到你的浏览器的,不是刻意转换的。
      

  3.   

    他是添加新闻的时候就自动生成静态的htm,或shtml 的,网上很多这种新闻系统的,不过做得都不是很好而已,象太平洋网站 就做地非常不错,不仅具体新闻是静态的,一、二级的分类也是静态的。
      

  4.   

    后台添加文章的时候,一方面插入到数据库中,一方面,生成一个文章名称,比如200504191637.htm,这个文件名和数据库中对应的记录保存在同一行中,前台就链接到这个文件上,就能显示出文章内容了.至于怎么生成.htm,就涉及到读.HTM文件和生成的问题了,找找资料,网上有的,我就是这样学过来的.做一次后你就会知道:不难.
      

  5.   

    实际上,如果一个内容改变了,你必须“触发”所有可能使用到这条内容的所有页面都刷新,否则就会出大麻烦。另外。所有带有交互信息的页面都不适合转换为静态页面,哪怕仅仅缓存很短时间(例如1分钟)也不行。asp缓存成html的方法: 仅用两条语句,.net可以获得任意一个 asp页面的输出结果保存为html。然后,你的asp程序稍作修改,在开头首先去检测这个html文件是否存在,存在就把他读出来输出而不用去访问数据库。把需要生成html静态页面的url地址批量(例如通过数据库)交给上面那个.net函数去处理就可以批量生成缓冲页面。
      

  6.   

    楼主说的应该就是网站发布的问题吧,可以写个模拟发布程序,得到动态页面的html源码,再保存为html文件。
      

  7.   

    public string GetHtmlContent(string _address)
    {
       string source
    try
    {
    HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(_address);
    HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
    StreamReader sr = new StreamReader(resp.GetResponseStream(),Encoding.Default);
    source = sr.ReadToEnd();
    resp.Close();}
    catch{}
             return source;
    }
      

  8.   

    asp.net里面可以直接使用response.write输出一个html文件.
      

  9.   

    to robert668(水木) ( ) 信誉:95 那个是显示ASPX页面的客户端的源码
      

  10.   

    环境:Microsoft .NET Framework SDK v1.1 
    OS:Windows Server 2003 中文版
    ASP.Net生成静态HTML页
    在Asp中实现的生成静态页用到的FileSystemObject对象!
    在.Net中涉及此类操作的是System.IO 
    以下是程序代码 注:此代码非原创!参考别人代码
    //生成HTML页
      public static bool WriteFile(string strText,string strContent,string strAuthor) 
      {
       string path = HttpContext.Current.Server.MapPath("/news/");
       Encoding code = Encoding.GetEncoding("gb2312");
       // 读取模板文件
       string temp = HttpContext.Current.Server.MapPath("/news/text.html");
       StreamReader sr=null;
       StreamWriter sw=null;
       string str="";  
       try
       {
        sr = new StreamReader(temp, code);
        str = sr.ReadToEnd(); // 读取文件
       }
       catch(Exception exp)
       {
        HttpContext.Current.Response.Write(exp.Message);
        HttpContext.Current.Response.End();
        sr.Close();
       }
      
       
       string htmlfilename=DateTime.Now.ToString("yyyyMMddHHmmss")+".html";
       // 替换内容
       // 这时,模板文件已经读入到名称为str的变量中了
       str =str.Replace("ShowArticle",strText); //模板页中的ShowArticle
       str = str.Replace("biaoti",strText);
       str = str.Replace("content",strContent);
       str = str.Replace("author",strAuthor);
       // 写文件
       try
       {
        sw = new StreamWriter(path + htmlfilename , false, code);
        sw.Write(str);
        sw.Flush();
       }
       catch(Exception ex)
       {
        HttpContext.Current.Response.Write(ex.Message);
        HttpContext.Current.Response.End();
       }
       finally
       {
        sw.Close();
       }
       return true;此函数放在Conn.CS基类中了
    在添加新闻的代码中引用 注:工程名为Hover
     
        if(Hover.Conn.WriteFilethis.Title.Text.ToString),this.Content.Text.ToString),this.Author.Text.ToString)))
        {
         Response.Write("添加成功");
        }
        else
        {
         Response.Write("生成HTML出错!");
        }
    -------------------------------------------------------------------------
    模板页Text.html代码
    -------------------------------------------------------------------------
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
    <HTML>
     <HEAD>
      <title>ShowArticle</title>
      
     <body> biaoti
     <br>
     content<br>
     author
     </body>
    </HTML>------------------------------------------------------------------------
    提示添加成功后会出以当前时间为文件名的html文件!上面只是把传递过来的几个参数直接写入了HTML文件中,在实际应用中需要先添加数据库,然后再写入HTML文件
    而且需要把生成的文件名等写入数库以便以后调用等,此实例只是实现了根据提交过来参数替换模板中的相应的字段! 需要完善的地方很多!哪位有高见,欢迎赐教!