ASP.NET怎样生成静态化页面

mm6268 2008-08-26 06:46:30
小弟和朋友有一个思路,但是不知道如何实现请各位高手帮忙解~!
具体思路是这样的:
一个新闻发布的模块,
有一个发布内容的后台,采用的富文本编辑器,输入的内容输出到展示页面
最好采用的静态化效果,就是展示页面,读取的内容和编辑的内容格式,字体都一样
小弟想直接从编辑器中取得内容的HTML代码,然后在另一个页面输出
或者可以直接连带母版页和内容重新保存为一个HTML文件
在首页根据标题内容的ID来读取相关信息

以上思路苦于找不到方法实现,小弟才疏学浅,还请各位高手帮忙

使用的是ASP.NET(C#)
提供源码示例者高分,帮顶散分,不够小弟补分~~~!!!!
...全文
688 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
不懂啊
huangdp2009 2010-04-30
  • 打赏
  • 举报
回复
xjc8455370 2008-11-09
  • 打赏
  • 举报
回复
xjc8455370 2008-11-09
  • 打赏
  • 举报
回复
我刚才发表的评论是用来测试这个富文本编辑器的,我也遇到了与楼主同样的问题啊,思路也一样,可惜不知如何解决。
大家在讨论的时候用模板的方法,我知道,可是如果在新闻内容中有多个分段,或者插入图片和表格的话,用模板就不行了吧,我想的是在后台使用富文本编辑器,然后再显示新闻内容页面,对于我的看法,大家可以给点解决问题的思路吗?
xjc8455370 2008-11-09
  • 打赏
  • 举报
回复
[
align=center]
hkkjhjk[/align]

Ny-6000 2008-09-06
  • 打赏
  • 举报
回复
来学习了.
gongsun 2008-09-03
  • 打赏
  • 举报
回复
这个代码应该不少啊...
chenchen1762 2008-09-03
  • 打赏
  • 举报
回复
支持一下,学学!!!!
shineforyou 2008-09-02
  • 打赏
  • 举报
回复
我前段时间也稍微研究过ASP.NET动态生成静态页面的方法,大致上来说有两种,一种是模板替换法,这个比较简单实用,一种是利用ASP.NET直接在服务器端运行目标文件,得到完整的HTML代码,将HTML代码保存在一个静态文件中,并向数据库中插入相关记录。
这是目前我个人理解的,不知道有没有什么错误,或者可能有更好的方式,只是我不知道,呵呵。
ws52097289 2008-08-27
  • 打赏
  • 举报
回复
相关信息存在数据库,如果有修改之类的操作,从数据库读出替换新闻模板的$XXX$标签即可

数据库新闻表

Id Title Content HtmPath(存放htm路径,用于新闻列表显示.后期维护和修改)
mjjzg 2008-08-27
  • 打赏
  • 举报
回复
支持一下.学习中.....
ws52097289 2008-08-27
  • 打赏
  • 举报
回复
上面的没选效果,重发一次哈.

模板页:NewsTemp.htm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>NewsTemp</title>
</head>
<body style="text-align: center">
<table style="width: 659px; height: 283px">
<tr>
<td colspan="4">
$hader$</td>
</tr>
<tr>
<td colspan="1" style="width: 158px">
$left$</td>
<td colspan="3">
$content$</td>
</tr>
<tr>
<td colspan="4">
$feet$</td>
</tr>
</table>

</body>
</html>


生成方法:

#region 生成
/// <summary>
/// 生成
/// </summary>
/// <param name="content">内容</param>
/// <param name="hader">页头</param>
/// <param name="left">左侧导航</param>
/// <param name="feet">页脚</param>
/// <param name="path">存放路径</param>
/// <returns></returns>
public static bool CreateIndeax()
{
// 读取模板文件
string temp = HttpContext.Current.Server.MapPath("NewsTemp.htm");
StreamReader sr = null;
StreamWriter sw = null;
string str = "";
try
{
sr = new StreamReader(temp, Encoding.GetEncoding("UTF-8"));//编码根据实际设置
str = sr.ReadToEnd();
}
catch (Exception ex)
{
HttpContext.Current.Response.Write(ex.Message);
HttpContext.Current.Response.End();
sr.Close();
sw.Close();
}


str = str.Replace("$hader$", hader);//替换相关标签
str = str.Replace("$left$", left);
str = str.Replace("$feet$", feet);
str = str.Replace("$content$", content);

try
{
FileOperate.WriteFile(str, path);//FileOperate.文件操作,在这就不附了,
return true;
}
catch (Exception ex)
{
HttpContext.Current.Response.Write(ex.Message);
return false;
}

}
#endregion
ws52097289 2008-08-27
  • 打赏
  • 举报
回复
模板页:NewsTemp.htm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>NewsTemp</title>
</head>
<body style="text-align: center">
<table style="width: 659px; height: 283px">
<tr>
<td colspan="4">
$hader$</td>
</tr>
<tr>
<td colspan="1" style="width: 158px">
$left$</td>
<td colspan="3">
$content$</td>
</tr>
<tr>
<td colspan="4">
$feet$</td>
</tr>
</table>

</body>
</html>


生成方法:

#region 生成
/// <summary>
/// 生成
/// </summary>
/// <param name="content">内容</param>
/// <param name="hader">页头</param>
/// <param name="left">左侧导航</param>
/// <param name="feet">页脚</param>
/// <param name="path">存放路径</param>
/// <returns></returns>
public static bool CreateIndeax()
{
// 读取模板文件
string temp = HttpContext.Current.Server.MapPath("NewsTemp.htm");
StreamReader sr = null;
StreamWriter sw = null;
string str = "";
try
{
sr = new StreamReader(temp, Encoding.GetEncoding("UTF-8"));//编码根据实际设置
str = sr.ReadToEnd();
}
catch (Exception ex)
{
HttpContext.Current.Response.Write(ex.Message);
HttpContext.Current.Response.End();
sr.Close();
sw.Close();
}


str = str.Replace("$hader$", hader);//替换相关标签
str = str.Replace("$left$", left);
str = str.Replace("$feet$", feet);
str = str.Replace("$content$", content);

try
{
FileOperate.WriteFile(str, path);//FileOperate.文件操作,在这就不附了,
return true;
}
catch (Exception ex)
{
HttpContext.Current.Response.Write(ex.Message);
return false;
}

}
#endregion
cyousor 2008-08-27
  • 打赏
  • 举报
回复
http://topic.csdn.net/u/20080624/10/26a45062-572c-47e9-bb38-d9aa05b6c2ed.html
ws52097289 2008-08-27
  • 打赏
  • 举报
回复
#region 生成
/// <summary>
/// 生成
/// </summary>
/// <param name="content">内容</param>
/// <param name="hader">页头</param>
/// <param name="left">左侧导航</param>
/// <param name="feet">页脚</param>
/// <param name="path">存放路径</param>
/// <returns></returns>
public static bool CreateIndeax(string content,string hader,string left,string feet,string path)
{



哈哈,之前丢参数了
sh_suyuelin 2008-08-27
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 mjjzg 的回复:]
支持一下.学习中.....
[/Quote]
wwd252 2008-08-27
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 ws52097289 的回复:]
上面的没选效果,重发一次哈.


C# code模板页:NewsTemp.htm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>NewsTemp</title>
</head>
<body style="text-align: center">
<table style="width: 659px; height: 283px">
<tr>
<td colspa…
[/Quote]
wxg22526451 2008-08-26
  • 打赏
  • 举报
回复
模板替换的方法
http://www.chenjiliang.com/Article/View.aspx?ArticleID=3657&TypeID=5
xiaolei1982 2008-08-26
  • 打赏
  • 举报
回复
google一搜很多,也很实用
Feiin 2008-08-26
  • 打赏
  • 举报
回复

可以参考


using system.net;
using system.io;

First:在服务器上指定aspx网页,生成html静态页

public partial class Default2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
StreamWriter sw = new StreamWriter(Server.MapPath("静态页1.htm"), false, System.Text.Encoding.GetEncoding("gb2312"));
Server.Execute("Default3.aspx", sw);
sw.Close();
}
}
}

Second:在服务器上执行aspx网页时在page_render事件里将本页面生成html静态页

public partial class Default3 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

}
protected override void Render(HtmlTextWriter writer)
{
StringWriter html = new StringWriter();
System.Web.UI.HtmlTextWriter tw = new System.Web.UI.HtmlTextWriter(html);
base.Render(tw);
System.IO.StreamWriter sw;
sw = new System.IO.StreamWriter(Server.MapPath("静态页2.htm"), false, System.Text.Encoding.Default);
sw.Write(html.ToString());
sw.Close();
tw.Close();
Response.Write(html.ToString());
}
}

Third:从指定连接获取源代码生成html静态页

public partial class Default4 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
string pageurl = "http://www.baidu.com";
WebRequest request = WebRequest.Create(pageurl);
WebResponse response = request.GetResponse();
Stream resstream = response.GetResponseStream();
StreamReader sr = new StreamReader(resstream, System.Text.Encoding.Default);
string contenthtml = sr.ReadToEnd();
resstream.Close();
sr.Close(); //写入文件
System.IO.StreamWriter sw;
sw = new System.IO.StreamWriter(Server.MapPath("静态页生成方法3.htm"), false, System.Text.Encoding.Default);
sw.Write(contenthtml);
sw.Close();
}
}
}



加载更多回复(2)

62,046

社区成员

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

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

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

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