生成静态html的问题

icanjj 2009-02-19 10:51:46
我的代码如下:

// 生成静态页
private void GenerateHTML(string titleid)
{
string Bbs_TitleBody = "Bbs_TitleBody_" + titleid.ToString();//缓存名,以分类Id为参数
Cache.Remove(Bbs_TitleBody);
DataTable dt = BbsCache.Bbs_GetTitleById(int.Parse(titleid));
// Response.Write(dt.Rows[0]["title"].ToString());
string fileyyyymmdd = dt.Rows[0]["fileyyyymmdd"].ToString();
string filename = fileyyyymmdd + titleid + ".html";
string caid = dt.Rows[0]["caid"].ToString();
string caname = ddlXL.SelectedItem.Text;
string title = dt.Rows[0]["title"].ToString();
string content = dt.Rows[0]["body"].ToString();
string time = DateTime.Parse(dt.Rows[0]["createdate"].ToString()).ToShortDateString();
string username = dt.Rows[0]["username"].ToString();
string sourceurl = "/forum/Show.aspx?TitleId=" + titleid + "&CaId=" + caid;

#region 生成静态页
//创建当前日期的文件夹开始
string dir = Server.MapPath("~/" + "ITNews/" + fileyyyymmdd);//用来生成文件夹
if (!Directory.Exists(dir))
{
Directory.CreateDirectory(dir);
}
//创建当前日期的文件夹结束
try
{
StringBuilder strhtml = new StringBuilder();

//创建StreamReader对象
using (StreamReader sr = new StreamReader(Server.MapPath("template.htm"), System.Text.Encoding.Default))
{
String oneline;
//读取指定的HTML文件模板
while ((oneline = sr.ReadLine()) != null)
{
strhtml.Append(oneline);
}
sr.Close();
}
//这几个是用来替换的。
string FilePath = "";
strhtml = strhtml.Replace("$Title", title);
strhtml = strhtml.Replace("$NewsCaId", caid);
strhtml = strhtml.Replace("$NewsCaName", caname);
strhtml = strhtml.Replace("$Time", time);
strhtml = strhtml.Replace("$UserName", username);//这里需要循环输出
strhtml = strhtml.Replace("$Content", content);//这里需要循环输出

FilePath = Server.MapPath("~/") + "ITNews" + "//" + fileyyyymmdd + "//" + filename;
strhtml = strhtml.Replace("$SourceURL", sourceurl);

//创建文件信息对象--------------------------------------------
FileInfo finfo = new FileInfo(FilePath);
//以打开或者写入的形式创建文件流
using (FileStream fs = finfo.OpenWrite())
{
//根据上面创建的文件流创建写数据流
StreamWriter sw = new StreamWriter(fs, System.Text.Encoding.UTF8);
//把新的内容写到创建的HTML页面中
sw.WriteLine(strhtml);
sw.Flush();
sw.Close();
}

}
catch (Exception ex)
{
//输出异常信息
Response.Write(ex.ToString());
}

#endregion
}



当用此代码来生成新闻页时没有问题

但我想用来生成循环数据,例如留言本,论坛的贴子时,我应如何实现?
...全文
91 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
奔跑的蜗牛007 2009-02-19
  • 打赏
  • 举报
回复
主要是思路

针对你的需求,你需要作以下封装:

1.定义一个函数,生成某一条数据的HTML(含样式)
2.定义函数来生成其它部分的HTML

然后循环调用此函数即可

注意:在生成某一条数据的HTML时,要与整个页面的布局相关,如果用表格,则此函数生成就包括<td></td>
icanjj 2009-02-19
  • 打赏
  • 举报
回复
具体如何实现?
REIYA 2009-02-19
  • 打赏
  • 举报
回复
可以这样做

你做一个需要循环的模版



读取循环的模版 就可以了啊

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧