ASP.NET静态页生成方法

本文实例讲述了ASP.NET静态页生成方法。分享给大家供大家参考。具体实现方法如下:

一、问题:

由于业务需要,得把页面按照模板页生成静态页面,所以自己就琢磨了下,写些思路,以备日后需要的时候用。

二、解决方法:

静态页生成用到最多的就是匹配跟替换了,首先得读取模板页的html内容,然后进行你自己定义的标签匹配,比如说我要把我定义的标题标签换成读取数据库的标题内容,那么可以直接读取数据库的标题,然后直接进行替换,然后生成html文件就OK了。

具体代码如下:

代码如下:

/// <summary>
/// 解析模板的html中匹配的标签,进行替换(暂时只能用于没有分页的页面)
/// </summary>
/// <param name="html">HTML</param>
/// <returns>返回替换后的HTML</returns>
public static string ReturnHtml(string html)
{
    string newhtml = html;
    newhtml = newhtml.Replace("<#Title#>", "这个是标题替换");//替换标题
    //newhtml = newhtml.Replace("<#Content#>", "这个是内容替换");//替换标题
    newhtml = CreateList(newhtml);
    return newhtml;
}

/// <summary>
/// 读取HTML文件
/// </summary>
/// <param name="temp">html文件的相对路径</param>
/// <returns>返回html</returns>
public static string ReadHtmlFile(string temp)
{
    StreamReader sr = null;
    string str = "";
    try
    {
 sr = new StreamReader(HttpContext.Current.Server.MapPath(temp), code);
 str = sr.ReadToEnd(); // 读取文件
    }
    catch (Exception exp)
    {
 HttpContext.Current.Response.Write(exp.Message);
 HttpContext.Current.Response.End();
    }
    finally
    {
 sr.Dispose();
 sr.Close();

}
    return str;
}

/// <summary>
/// 生成html文件
/// </summary>
/// <param name="filmname">文件名(带相对路径路径,如:../a.html)</param>
/// <param name="html">html内容(整个)</param>
public static void writeHtml(string filmname, string html)
{
    System.Text.Encoding code = System.Text.Encoding.GetEncoding("utf-8");
    string htmlfilename = HttpContext.Current.Server.MapPath(filmname);
    string str = html;
    StreamWriter sw = null;
    // 写文件
    try
    {
 sw = new StreamWriter(htmlfilename, false, code);
 sw.Write(str);
 sw.Flush();
    }

catch (Exception ex)
    {
 HttpContext.Current.Response.Write(ex.Message);
 HttpContext.Current.Response.End();
    }

finally
    {
 sw.Close();
    }
}

从代码可以看得出来,生成静态页面其实就是这么一个过程:读取模板页的源码->匹配替换自定义的标签为实际内容->最后再生成新的html文件,思路就这么走,以前没有动手过,觉得太复杂了,如今主动写的时候,发现也不算很复杂。

最后,如果说有些生成分页列表的,也就是把列表页面进行循环生成,有多少页就生成多少个静态页文件,如果有不懂的可以回复问,我懂的我尽量为大家解答,当然,不懂的我也无能为力了,毕竟我也是刚接触这功能,现在暂时弄得一个最简陋的样子,附图上来给大家笑话笑话:

希望本文所述对大家的asp.net程序设计有所帮助。

(0)

相关推荐

  • ASP.NET生成eurl.axd Http异常错误的处理方法

    在IIS6中同时启用了ASP.NET 2.0 和 ASP.NET 4.0 后,网站程序可能会出现如下错误:" System.Web.HttpException: Path '//eurl.axd/' was not found. " 错误发生的原因是当ASP.NET检测到Web站点配置为使用ASP.NET 4.0,本地ASP.NET 4.0 的组件会传递一个不能扩展的 URL到ASP.NET的管理程序作进一步处理.但是,如果一个低于ASP.NET 4.0 的网站配置为使用ASP.NET

  • ASP.NET中使用后端代码注册脚本 生成JQUERY-EASYUI的界面错位的解决方法

    如图: 上图的右边框不见了,使用 web开发工具调试,发现是内容器过大.于是想到了是jquery-easyui 对界面的"渲染"不正确引起. 起初以为是因为加了 处理重复的代码引起,但是去掉后总是依旧: 进而考虑到界面"渲染"的前后关系,于是尝试对代码片段进行延迟执行,问题解决.原问题脚本: 复制代码 代码如下: <script type="text/javascript"> if (window.__yltlClientScriptRegistKey == undefin

  • asp.net利用后台实现直接生成html分页的方法

    本文实例讲述了asp.net利用后台实现直接生成html分页的方法,是一个比较实用的功能.分享给大家供大家参考之用.具体方法如下: 1.建立存储过程: ALTER procedure [dbo].[p_news_query] @Page int as begin select top 5 new_id,new_title,new_url,new_content_text,create_time,user_name from (select *,ROW_NUMBER() over(order by

  • ASP.net(c#)生成条形码 code39条码生成方法

    这几天一直在弄128条码的事情,找了相关的资料,也没找到.后来没办法只能改成code39的条码.现在把它写出来,与大家分享 1.先下载一种免费的 code39条码字体 2.建个类 为 code39 并写入以下代码 复制代码 代码如下: public sealed class Code39 { #region private variables /// <summary> /// The Space Between each of Title, BarCode, BarCodeString //

  • Asp.net动态生成html页面的方法分享

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

  • asp.net生成缩略图示例方法分享

    做站的时候经常会遇到要生成缩略图的功能,因为可能不同的情况需要用来不同大小的缩略图. 本文生成的图片都为正方形,只有正方形的缩略图才是保证图片足够清晰. 当我我这里说的正方形是先按比例压缩,然后加一个固定的白底 然后居中显示. 代码: 新建outputimg.ashx 复制代码 代码如下: //调整图片大小private static Size NewSize(int maxWidth, int maxHeight, int Width, int Height)        {        

  • ASP.NET生成两个日期范围内随机时间的实现方法

    本文实例讲述了ASP.NET生成两个日期范围内随机时间的实现方法.分享给大家供大家参考.具体方法分析如下: 想网上找个生成随机天数的方法找不到,后面只得自己写了,贴给大家方便使用 思路:算两个日期的相差天数,然后在0到相差天数的范围内生成随机数,再用结束时间的天数部分减去这个随机数,代码: 复制代码 代码如下: /// <summary> /// (在两个时间范围内)生成随机日期 /// </summary> /// <param name="startime&qu

  • 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的类生成dll文件的方法

    开始->程序->Microsoft Visual Studio 2005->Visual Studio Tools->Visual Studio 2005 命令提示 然后进入你的类目录,比如你的类文件是在E:/test/App_Code下面, 输入如下命令: csc /target:library File.cs 其中file.cs为你的类文件. 然后即可生成同名的dll文件!!! 自定义服务器控件分为两种: 1.一种是用*.aspx代码和*.cs代码编译后生成DLL,再添加引用到

  • asp.net实现生成静态页并添加链接的方法

    本文以实例讲解了asp.net实现生成静态页并添加链接的方法,非常实用的功能,通过本实例可以加深读者对于asp.net下文件操作的认识. 1.创建一个静态网页模板 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http

  • asp.net生成Excel并导出下载五种实现方法

    方法一 通过GridView(简评:方法比较简单,但是只适合生成格式简单的Excel,且无法保留VBA代码),页面无刷新 aspx.cs部分 复制代码 代码如下: using System; using System.Collections; using System.Configuration; using System.Data; using System.Web; using System.Web.Security; using System.Web.UI; using System.We

  • ASP.NET中生成Excel遇到的问题及改进方法

    先看一下方法(其中略去了一些判断和扩展): 生成Excel老代码 复制代码 代码如下: /// <summary> /// 将一组对象导出成EXCEL /// </summary> /// <typeparam name="T">要导出对象的类型</typeparam> /// <param name="objList">一组对象</param> /// <param name="

随机推荐