ASP.NET怎么生成静态化页面
ASP.NET怎样生成静态化页面
小弟和朋友有一个思路,但是不知道如何实现请各位高手帮忙解~!
具体思路是这样的:
一个新闻发布的模块,
有一个发布内容的后台,采用的富文本编辑器,输入的内容输出到展示页面
最好采用的静态化效果,就是展示页面,读取的内容和编辑的内容格式,字体都一样
小弟想直接从编辑器中取得内容的HTML代码,然后在另一个页面输出
或者可以直接连带母版页和内容重新保存为一个HTML文件
在首页根据标题内容的ID来读取相关信息
以上思路苦于找不到方法实现,小弟才疏学浅,还请各位高手帮忙
使用的是ASP.NET(C#)
提供源码示例者高分,帮顶散分,不够小弟补分~~~!!!!
------解决方案--------------------
编辑器编辑后的就是带html标签的,将这个和newid等信息存入数据库,在前台用Querystring传入newsid参数.获取文章.
------解决方案--------------------
生成静态页面你可以在编辑完成提交的时候同时进行.你可以做一个展示新闻的模板.html,然后replace里面的title.content,保存为一个静态的页面.html.同时将路径插入数据库
------解决方案--------------------
可以参考
小弟和朋友有一个思路,但是不知道如何实现请各位高手帮忙解~!
具体思路是这样的:
一个新闻发布的模块,
有一个发布内容的后台,采用的富文本编辑器,输入的内容输出到展示页面
最好采用的静态化效果,就是展示页面,读取的内容和编辑的内容格式,字体都一样
小弟想直接从编辑器中取得内容的HTML代码,然后在另一个页面输出
或者可以直接连带母版页和内容重新保存为一个HTML文件
在首页根据标题内容的ID来读取相关信息
以上思路苦于找不到方法实现,小弟才疏学浅,还请各位高手帮忙
使用的是ASP.NET(C#)
提供源码示例者高分,帮顶散分,不够小弟补分~~~!!!!
------解决方案--------------------
编辑器编辑后的就是带html标签的,将这个和newid等信息存入数据库,在前台用Querystring传入newsid参数.获取文章.
------解决方案--------------------
生成静态页面你可以在编辑完成提交的时候同时进行.你可以做一个展示新闻的模板.html,然后replace里面的title.content,保存为一个静态的页面.html.同时将路径插入数据库
------解决方案--------------------
可以参考
- C# code
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(); } } }
------解决方案--------------------
模板替换的方法
http://www.chenjiliang.com/Article/View.aspx?ArticleID=3657&TypeID=5
------解决方案--------------------
上面的没选效果,重发一次哈.
- 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 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