现在我已经把内容页生成静态了,用特定字符替换的方法!比如这种! Replace("[内容]",数据库中去取)   现在我要把所有的列表页和首页都生成静态的,我看风讯和新云都用的标签,比如这种 $NewsList{1,10,23,2}
我也想这样用,  把这个标签对应该到我的方法上,,可是却怎么也取不出来这个东西!里面的参数当然也就是我生成的时候用到的参数了,,这个东西用替换做不出来,,哪位高手能指点一下,,怎么做呀!!!急呀!!

解决方案 »

  1.   

    一个.aspx的动态页面
    然后用WEBRequest对象请求这个URL
    将返回的HTML写入文件
    这种方案比替换的那种更适合用于首页和二级页面
      

  2.   

    如果用请求的方式的话,首先要有个动态页,,这样的话,生成静态页也就没什么意思了,,我就是想做成风讯那样用标签对应到方法的方式做出来..
    例如
       $NewsList{1,24,12,21}
    在页面中找到这个东西,用   NewsList(1,24,12,21)去取出内容,放到$NewsList{1,24,12,21}这个位置!
    难道真的没有人知道怎么做吗?
      

  3.   

    将Asp.net页面输出为HTML 
     c#代码:
    WebRequest mywebrq;WebResponse mywebresp;StreamReader sr;Streamwriter sw;Private void Page_Load(object sender,EventArgs e){mywebreq=WebRequest.Create(http://localhost/Test.aspx);mywebresp=mywebreq.GetResponse();sr=new streamReader(mywebresp.GetResponsestream());strHtml=sr.ReadToEnd();sw=File.CreateText(server.mappath("Test.htm"));sw.writeling(strHtml);sw.close();Response.writeFile(Server.Mappath("Test.htm"));} 
      

  4.   

    public void NewsList(ref string PageStr)
            {
                string TempStr;
                int CurrentTag, StartTag, EndTag;
                string[] ParameterArray;            CurrentTag = PageStr.IndexOf("{$NewsList(");
                if (CurrentTag > -1)
                {
                    StartTag = CurrentTag;
                    EndTag = PageStr.IndexOf(")$}", StartTag);
                    TempStr = PageStr.Substring(StartTag + 12, EndTag - (StartTag + 12));
                    ParameterArray = TempStr.Split(',');
                    doh.Reset();
                    doh.SqlCmd = "SELECT * FROM table WHERE ISPASS= ParameterArray[1";
                    if (ParameterArray[0] != "0")
                        doh.SqlCmd += " and channelId=" + ParameterArray[0];
                    DataTable dt = doh.GetDataTable();
               
                }
            }我基本是这样搞的
    你在根据你自己的改一下
      

  5.   

    少了一个]
    SELECT * FROM table WHERE ISPASS= ParameterArray[1]