ASP.NET动态生成静态页面的实例代码_实用技巧

最近突然想把项目中新闻管理模块做成静态页,在网上找到很多很好的文章,在这里记录一下,现在只是实现静态页面的生成并没有实现分页功能。其主要原理就是读取数据库的数据然后替换掉静态模板页的内容。
首先制作一个模板页,暂时命名为template.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></title>
</head>
<body>
    <div>
        $content$
    </div>
</body>
</html>
然后制作制作一个动态页面,在这里我们通过一个按钮点击事件来生成静态页面。
前台页面主要代码(Default.aspx):

复制代码 代码如下:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> 
<!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 runat="server"> 
    <title></title> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
        <asp:TextBox ID="txtContent" runat="server" Height="179px" TextMode="MultiLine" Width="350px"></asp:TextBox><br /> 
        <br /> 
        <asp:Button ID="btnMake" runat="server" OnClick="btnMake_Click" Text="生成静态页" /> 
    </div> 
    </form> 
</body> 
</html> 

后台页面主要代码(Default.aspx.cs):

复制代码 代码如下:

protected void btnMake_Click(object sender, EventArgs e) 
    { 
        //替换掉模板中的特征字符    
        string mbPath = Server.MapPath("template.htm"); 
        Encoding code = Encoding.GetEncoding("UTF-8"); 
        StreamReader sr = null; 
        StreamWriter sw = null; 
        string str = null; 
        //读取    
        try 
        { 
            sr = new StreamReader(mbPath, code); 
            str = sr.ReadToEnd(); 
        } 
        catch (Exception ex) 
        { 
            throw ex; 
        } 
        finally 
        { 
            sr.Close(); 
        } 
        //根据时间自动重命名,扩展名也可以自行修改    
        string fileName = DateTime.Now.ToString("yyyyMMddHHmm") + ".htm"; 
        str = str.Replace("$content$", txtContent.Text);//替换content   
        //生成静态文件    
        try 
        { 
            sw = new StreamWriter(Server.MapPath("~/") + fileName, false, code); 
            sw.Write(str); 
            sw.Flush(); 
        } 
        catch (Exception ex) 
        { 
            throw ex; 
        } 
        finally 
        { 
            sw.Close(); 
            Response.Write("<a href=" + fileName + " mce_href=" + fileName + " target=_blank>" + fileName + "</a>已经生成!"); 
        } 
    } 

当新闻量很大时这样做势必会增加服务器的存储压力,暂时记录下来等毕业设计时再考虑增加动态生成静态页面,静态页面分页的功能。

时间: 2024-11-01 03:42:43

ASP.NET动态生成静态页面的实例代码_实用技巧的相关文章

ASP.NET动态生成静态页面的实例代码

生成静态页有很多好处,可以缓解服务器压力.方便搜索网站搜索等等,下面介绍一下生成静态页的实例代码,有需要的朋友可以参考一下   最近突然想把项目中新闻管理模块做成静态页,在网上找到很多很好的文章,在这里记录一下,现在只是实现静态页面的生成并没有实现分页功能.其主要原理就是读取数据库的数据然后替换掉静态模板页的内容. 首先制作一个模板页,暂时命名为template.htm,示例代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transit

Asp.net动态生成html页面的方法分享_实用技巧

    此功能适用于后台数据库功能不强的web站点,即大部分文本不是存放在数据库的记录中,而是放在html文件或者xml文件中,仅仅把索引放到数据库中,如文章标题.类别.查询关键字等.这样适合于后台没有诸如MS Sql Server这样的数据库支持的Web站点.  适用于新闻发布系统,比如sina.163等都是采用动态生成html页面的.     适用于需动态定制页面的程序.比如论坛.聊天室等.可以加载定制好的html页面,来加强美观.     思路     1. 利用如Dw-Mx这样的工具生成

asp.net输出重写压缩页面文件实例代码_实用技巧

例子 复制代码 代码如下: using System;using System.Data;using System.Configuration;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.htmlControls;using Sys

asp.net session的使用与过期实例代码_实用技巧

1.Session是一种Web会话中的常用状态之一. 2.Session提供了一种把信息保存在服务器内存中的方式.他能储存任何数据类型,包含自定义对象. 3.每个客户端的Seesion是独立存储的. 4.在整个会话过程中,只要SessionID的cookie不丢失,都会保存Session信息的. 5.Session不能跨进程访问,只能由该会话的用户访问.应为提取Session数据的id标识是以Cookie的方式保存到访问者浏览器的缓存里的. 6.当会话终止,或过期时,服务器就清除Session对

Asp.Net生成静态页面的实现方法_实用技巧

复制代码 代码如下: using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using Syste

ASP.NET连接SQL数据库的简单实例代码_实用技巧

复制代码 代码如下: using System;using System.Collections;using System.ComponentModel;using System.Data;using System.Drawing;using System.Web;using System.Web.SessionState;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.HTMLControls;us

ASP.NET返回上一页面的实现代码_实用技巧

解决方法: 程序的相关介绍 主界面:未发货订单列表(http://localhost:18888/Order/UnfilledOrdersList.aspx) 子界面:订单详细信息(http://localhost:18888/Order/ViewOrderDetail.aspx?OrderId= id,其中id的值是在主界面中被选中的那条订单信息的id) 主页面为一个订单的主要信息,GridView中有一个HyperLink控件,通过它可以跳转到"订单详细信息"界面进而查看订单的详细

Asp.Net用OWC操作Excel的实例代码_实用技巧

复制代码 代码如下:     string connstr = System.Configuration.ConfigurationManager.ConnectionStrings["DqpiHrConnectionString"].ToString();        SqlConnection conn = new SqlConnection(connstr);        SqlDataAdapter sda = new SqlDataAdapter(sql1.Text, c

ASP.NET,生成静态页面时,代码HttpContext.Current.Server.Execute()出现错误

问题描述 各位大神好,项目里生成HTML静态页面,执行到HtmlProxy类时,出现异常错误HttpContext.Current.Server.Execute("article_detailed.aspx?nid="+id,sw);麻烦各位大神赐教 解决方案 解决方案二:提示已经说了.你的IIS配置的asp.net模式有错误,它不支持asp.net的这个操作.解决方案三:引用1楼sp1234的回复: 提示已经说了.你的IIS配置的asp.net模式有错误,它不支持asp.net的这个