怎样批量生成静态页面啊?高分求源代码(1000~_~给不了)
asp.net怎样批量生成静态页面啊?
第一次接触,是把所有页面变成html形式的么?
代码代码?
有源代码改改就能用么??
谢谢!分不够再加
[解决办法]
看我的博客。
里面有
[解决办法]
给你个方向
先用webclient/httpwebrequest读取地址
再用streamwriter生成文件
你去百度上找找就有了.
[解决办法]
我的思想在自己定义一套模版标记方案, ASPX里的 <ASP:XX> 标记就是种很好的模版标记方案
把模版页读进内存,用正则解析模版页,把里面的自定义标记转换成 对象,就像ASP.NET把 <ASP:XX> 标记变成控件类实例一样. 这样生成页面时,你只需要把数据准备好,循环填充就行了
给你个参考
模板: http://portray.mz99.com/app_template/catalogshow.htm
生成页: http://portray.mz99.com/static/CategoryShow3P1.htm
[解决办法]
看看!!
[解决办法]
你看看这段代码吧,就是替换模版文件Template1.htm文件里的 <!--Test1-->
private void writefile(string Template1,string Test1, string SaveFile)
{
string path = HttpContext.Current.Server.MapPath( "./ ");
System.Text.Encoding code = System.Text.Encoding.GetEncoding( "gb2312 ");
// 读取模板文件
string temp = HttpContext.Current.Server.MapPathtemplate/ "+Template1+ ".htm ");
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 = SaveFile+ ".htm ";
// 替换内容
// 这时,模板文件已经读入到名称为str的变量中了
// 写文件
str = str.Replace( " <!--Test1--> ", sRecommendVideo);
try
{
//sw = new StreamWriter(path + htmlfilename , false, code);
//sw.Write(str);
//sw.Flush();
HttpContext.Current.Response.Write(str);
}
catch(Exception ex)
{
HttpContext.Current.Response.Write(ex.Message);
HttpContext.Current.Response.End();
}
finally
{
//sw.Close();
sr.Close();
}
}
[解决办法]
楼上正解
[解决办法]
最苯的方法,加个循环
PageUrl = tempstr[ij,0];//要生成静态页的http地址,放到字符串数组中
WebClient wc = new WebClient();
wc.Credentials = CredentialCache.DefaultCredentials;
Byte[] pageData = wc.DownloadData(PageUrl);
string tstr = Encoding.GetEncoding( "gb2312 ").GetString(pageData);//Encoding.Default.GetString(pageData);
lujing = @TextBox2.Text.ToString();//Server.MapPath( "~/ ");
//lujing = lujing.Substring(0, lujing.LastIndexOf( '. ') + 1);
lujing = lujing + "\\ "+ tempstr[ij,1]+ ".txt ";
FileStream fs = File.Create(lujing);
StreamWriter sw = new StreamWriter(fs);
fs.Close();
StreamReader sr = new StreamReader(lujing,Encoding.GetEncoding( "gb2312 "));
string s = sr.ReadToEnd();
sr.Close();
s = tstr;
//Encoding code = Encoding.GetEncoding( "gb2312 ");
StreamWriter sw1 = new StreamWriter(lujing,false,Encoding.GetEncoding( "gb2312 "));
sw1.Write(s);
sw1.Close();
string qlujing = lujing.Substring(0, lujing.LastIndexOf( '. ') + 1);
qlujing = qlujing + "html ";
try
{
File.Move(lujing, qlujing);
}
catch
{
File.Delete(qlujing);
File.Move(lujing, qlujing);
}
lujing = " ";
wc.Dispose();
[解决办法]
顶一下了
[解决办法]
这段代码在哪写呢?
[解决办法]
是不是可以用codesmith试试,我们做的有个项目几百个页面都是用它自动生成的。
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
我的E-Mail:bdbox@163.com 请多指教!
[解决办法]
那些模版,替换好说,但是静态分页怎么控制
数据增加了,分页肯定要变吧
[解决办法]
批量生成静态页面,我也一直在考虑这个问题,
但是如果数据量真的很大的话,比如1千页,基于b/s结构的网络通讯会断的,到后来直接报ie错误。
如果是1千也肯定网络中断,看过一些资料。网友们提供以下一些方法但是我没用过:
1、动静结果,除了大首页或者是各个栏目的首页之外,其它都是aspx页面,也就是每次只生成频道的首页,或者新闻列表的首页
2、归档。按招实际的数据量一天归挡一次,或者是一周。以一天为例子,今天的数据都在页面上显示,以前的数据通过日历控件,或者检索条件列出。其实很多时候别人不关心的105页有什么数据,你所有的页面都生成静态页面干吗呢?