`
niunan
  • 浏览: 721360 次
  • 性别: Icon_minigender_1
  • 来自: 南宁
社区版块
存档分类
最新评论

ASP.NET中根据模板生成静态页!

    博客分类:
  • .NET
阅读更多
    从51aspx.com网站上下到的源码,预先定义好htm,然后在后面添加标题和内容后把标题和内容放在定义好的htm中生成静态页,觉得蛮有用的,先记下来了,以后改进我的那个新闻发布系统的话肯定会用到这招,嘿嘿!
    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$ </title>
    <meta http-equiv=content-type content="text/html; charset=UTF-8" />
    <style type="text/css">
    <!--
        .STYLE1 {
            font-size: 16px;
            font-weight: bold;
        }
    -->
    </style>
</head>
<body>
<br />
<br />
<table width="100%" border="0" bgcolor="#339900">
  <tr>
    <td height="34" align="center" bgcolor="#FFFFFF"><span class="STYLE1">$title$ </span></td>
  </tr>
  <tr>
    <td height="42" bgcolor="#FFFFFF"><br />
      <br />
    内容:$content$ </td>
  </tr>
</table>
<a href="http://www.51aspx.com" target="_blank">51aspx.com 版权所有</a>
</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="txtTitle" runat="server" Width="352px"></asp:TextBox><br />
        内容:<asp:TextBox ID="txtContent" runat="server" Height="179px" TextMode="MultiLine"
            Width="350px"></asp:TextBox><br />
        <br />
        <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="生成静态页" /><br />
    </div>
    </form>
</body>
</html>

Default.aspx.cs源码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Text;
using System.IO;

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

    }

    protected void Button1_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("yyyyMMddHHmmss") + ".htm";
        str = str.Replace("$title$", txtTitle.Text);//替换Title
        str = str.Replace("$content$", txtContent.Text);//替换content

        //生成静态文件
        try
        {
            sw = new StreamWriter(Server.MapPath("htm/") + fileName, false, code);
            sw.Write(str);
            sw.Flush();

        }
        catch (Exception ex)
        {
            throw ex;
        }
        finally
        {
            sw.Close();
            Response.Write("恭喜<a href=htm/" + fileName + " target=_blank>" + fileName + "</a>已经生成,保存在htm文件夹下!");
        }

    }
}

附上源文件,供想用的朋友下载参观!
分享到:
评论
6 楼 goodtime 2009-08-20  
用了protected override void Render(HtmlTextWriter writer),页面直接生成静态页,但不能浏览了,有没办法,能控制需要的时候才生成静态页?就是不需要生成静态页的时候,可以正常浏览。
5 楼 goodtime 2009-08-20  
可在Render事件中输入如下代码,就是怎么弄?我是直接把那段代码放到要生成的页面里
4 楼 goodtime 2009-08-20  
牛腩说的这两个方法,我都用过。
第一个方式,有一个问题,就是静态页里的动态内容怎么关联其他动态(或静态页)里的内容,随之更新而自动更新?

第二问题就是:
//生成静态页面
protected override void Render(HtmlTextWriter writer)

有没有办法通过后台来控制?首页用了这条语句,每次点击打开首页,就自动生成静态页,过于频繁了,如果能通过后台控制生成应该怎么弄?还有,因为用了这条语句后,静态页怎么来调用首页的内容?
3 楼 niunan 2009-08-14  
另一个方法是在aspx页面生成了以后再把aspx的整个页面生成静态页,可在Render事件中输入如下代码:

    //生成静态页面
    protected override void Render(HtmlTextWriter writer)
    {
        System.IO.StringWriter html = new System.IO.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("niunantest.htm"), false, System.Text.Encoding.UTF8);
        sw.Write(html.ToString());
        sw.Close();
        tw.Close();
        Response.Write("<script>alert('生成成功!');window.close();</script>");
    }


这个就可以使用.NET的数据绑定控件绑定数据后再生成静态页
2 楼 eimen 2009-06-02  
ASP.NET中根据模板生成静态页!
jqqcz 写道

感谢你的分享!昨天看完了你的新闻系统视频,我觉得生成静态页面这方面的知识也可以加上去!谢谢

对。
1 楼 jqqcz 2009-01-05  
感谢你的分享!昨天看完了你的新闻系统视频,我觉得生成静态页面这方面的知识也可以加上去!谢谢

相关推荐

    Asp.net C# 利用模板生成静态页面实例

    这种模板生成静态页面的方法在大型网站、电子商务平台或新闻站点中很常见,因为它们往往有大量的页面需要展示,且更新频率不高。通过预生成静态页面,可以显著提升用户体验,降低服务器压力。同时,这种方法也有助于...

    asp.net 通过模板生成静态html

    在这个特定的场景中,我们将讨论如何使用ASP.NET来通过模板生成静态HTML页面。这个功能在内容管理系统(CMS)中尤其常见,因为静态HTML可以提高网页的加载速度和搜索引擎优化(SEO)。 首先,我们来看"文件的全选,...

    asp.net模板生成静态页面

    ASP.NET 模板生成静态页面是一种技术,它允许开发者将动态网站内容转化为静态HTML页面,以提高网站性能、搜索引擎优化(SEO)以及离线访问能力。对于初学者来说,这是一个非常实用的技术,因为它降低了服务器处理...

    ASP.NET源码——asp.net生成静态页面的模板引擎.zip

    这个压缩包文件"ASP.NET源码——asp.net生成静态页面的模板引擎.zip"包含了一个名为"EFPlatform.TemplateEngine v1.0_aspnetms"的项目,它是一个用于ASP.NET平台的模板引擎,专门用于生成静态HTML页面。这种技术可以...

    asp.net动态页生成静态页

    在ASP.NET中,动态页生成静态页是一种优化网站性能的技术,它可以提高网页的加载速度,减少服务器负担,并有助于搜索引擎优化(SEO)。动态页是基于服务器端脚本技术,如ASP.NET,每次请求时都会执行代码并生成HTML...

    Asp.net根据Url和模板生成静态页面

    通过学习和研究这个示例,你可以更好地理解如何在Asp.net环境中实现根据Url和模板生成静态页面的功能。 总结来说,Asp.net生成静态页面是一个涉及模板设计、数据处理、HTML生成、文件保存、路由配置和缓存策略等多...

    asp.net调用模板生成静态页并以纯静态分页

    本文将深入探讨如何使用ASP.NET调用模板生成静态页,并实现纯静态分页。 首先,让我们理解“调用模板生成静态页”的概念。模板是预先设计好的HTML结构,其中包含了动态内容的占位符,如变量或循环。在ASP.NET中,...

    asp.net生成静态页面的模板引擎

    这就是ASP.NET生成静态页面的目的所在。模板引擎在此过程中扮演了关键角色,它允许开发者定义页面布局和内容,并将其转换为静态文件。 模板引擎是一种工具,用于解析带有控制结构(如循环、条件语句)和动态内容的...

    ASP.NET生成静态页的三种方法

    ### ASP.NET生成静态页的三种方法 在ASP.NET开发中,有时为了提高网站访问速度、减轻服务器负担或便于搜索引擎优化(SEO),会采用生成静态页面的方式。本文将详细介绍三种常用的ASP.NET生成静态页面的方法。 ####...

    ASP.NET MVC使用RazorEngine解析模板生成静态页

    在*** MVC中,Razor模板引擎被广泛应用于生成动态视图,而RazorEngine是在Razor的基础上构建的一个独立模板引擎库,它允许开发者在*** MVC环境之外使用Razor语法来生成静态页面。这种方法特别适用于内容管理系统中,...

    ASP.NET生成静态页面

    ASP.NET生成静态页面是一种常见的网站优化技术,它能够提高网页加载速度,降低服务器负载,并对搜索引擎友好。在本文中,我们将深入探讨这个主题,包括如何实现静态页面生成、分页处理、常见问题以及代码优化。 ...

    ASP.NET生成静态HTML页面

    在压缩包文件“autoHTML”中,可能包含了一个这样的自动化工具或者示例代码,用于帮助开发者实现在ASP.NET项目中生成静态HTML页面。使用这些资源,开发者可以学习如何配置和使用这些工具,以优化他们的Web应用性能。...

    asp.net生成静态页面的模板引擎EFPlatform.TemplateEngine

    ASP.NET生成静态页面的模板引擎,如EFPlatform.TemplateEngine,是一种高效的技术,它允许开发者将动态内容转化为HTML静态页面,从而提升网站的性能和搜索引擎优化(SEO)。这种引擎结合了ASP.NET的灵活性与静态页面...

    【ASP.NET编程知识】Asp.Net生成静态页面的实现方法.docx

    在本文档中,我们使用ASP.NET编程语言来生成静态页面。 知识点3: 使用Sql Server数据库 在本文档中,我们使用Sql Server数据库来存储新闻标题、内容、背景色、字体颜色、字体大小等信息。Sql Server是一种关系...

    asp.net生成列表静态和新闻静态

    根据给定的文件信息,“asp.net生成列表静态和新闻静态”主要涉及如何使用ASP.NET来生成静态页面,特别是列表页面和新闻详情页面。接下来,我们将对这些内容进行详细的解释和分析。 #### 核心知识点一:动态生成...

    ASP.NET 使用模板生成静态页面.zip

    生成静态页有很多好处,可以缓解服务器压力、方便搜索网站搜索等等,这是生成静态页的实例代码。...从预先定义好的模板生成静态页面:读取模板,替换内容,保存文件。 工具:使用vs2019 技术:c#,asp.net,html

    ASP.NET生成静态页面和分页

    在ASP.NET中,生成静态页面和实现分页是两个重要的概念,对于提升网站性能和用户体验有着显著的作用。 **生成静态页面**: 生成静态页面,也称为“静态化”,是指将原本动态生成的HTML页面转化为预先生成的、不依赖...

    ASP.NET源码——利用handler生成静态页面的完整解决方案.zip

    在这个"ASP.NET源码——利用handler生成静态页面的完整解决方案.zip"压缩包中,我们可以看到一个利用ASP.NET Handler(HttpHandler)来生成静态HTML页面的实践案例。 Handler在ASP.NET中扮演着处理特定HTTP请求的...

Global site tag (gtag.js) - Google Analytics