asp.net做的网站首页怎么生成静态?
做了个新闻类发布类的网站,子页生成HTML我解决了,但是首页怎么处理?
首页用的repeater控件显示的,不知道怎么生成静态了。麻烦大家给我出个思路。再就是门户类的网站的首页显示记录时用repeater控件对不?我知道的是可以用datareader显示,也可以用datalist和gridview显示,但没大搞清楚应该用哪个最理想。还有就是想生成静态的话怎么处理。

解决方案 »

  1.   

    方法很多种!
    效率高准确的还是 模板替换 比较好
    根据模板生成静态页也比较灵活
    至于模板中的标签需要你自己定义好
    比如我做的小的cms是这样的格式{PT_1,2,3}
    大概意思是:id是1栏目下面的两条新闻,每条新闻显示3个字
      

  2.   

     /// <summary>
            /// 转换成静态HTML
            /// </summary>
            /// <param name="path">动态页面路径 如Aritcle.aspx?id=1</param>
            /// <param name="outpath">生成的HTML文件路径</param>      
            public void transHtml(string path, string outpath)
            {
                Page page = new Page();
                StringWriter writer = new StringWriter();
                page.Server.Execute(path, writer);
                FileStream fs;
                if (File.Exists(page.Server.MapPath("") + "\\" + outpath))
                {
                    File.Delete(page.Server.MapPath("") + "\\" + outpath);
                    fs = File.Create(page.Server.MapPath("") + "\\" + outpath);
                }
                else
                {
                    fs = File.Create(page.Server.MapPath("") + "\\" + outpath);
                }
                byte[] bt = Encoding.Default.GetBytes(writer.ToString());
                fs.Write(bt, 0, bt.Length);
                fs.Close();
            }
      

  3.   

    静态页就不能用控件了,自己用html做一个模板页,把你要输出的内容去替换掉模板页里面的特定符号(代号)
      

  4.   

    不能用控件   如果有列表  可以用AJAX去另外一个页面获取列表 用for循环一条一条的返回
      

  5.   

    想想了个办法,就是后台有个ASPX页,先让浏览器执行出HTML来,然后再把HTML读出来并写成一个新的INDEX.html文件,以前做ASP就是这么做的,不过ASP.NET里不认绝对路径,能有办法让它认绝对路径不?代码如下: string filePath =Server.MapPath("login.aspx");
            StreamReader sr = File.OpenText(filePath);
            sr = new StreamReader(filePath, System.Text.Encoding.GetEncoding("utf-8"));
            string mystr = sr.ReadToEnd();        //写入        
            string strpath = Server.MapPath("index.html");
            StreamWriter sw = new StreamWriter(strpath);
            sw.Write(mystr);
            sw.Close();
      

  6.   

    CODE163,你那个具体怎么用?
    我是新手,不会用。我的文件名是default.aspx,想把它转成静态具体怎么操作?