为了利于SEO优化,最近在项目中需要把某些页面转化为静态页面,现把相关思路整理如下。

一,先建立一个模版页

为了适应实际应用功能,一个网站往往需要最终用户自定义静态化的模版,本文对这方面不作过多描述,主要只是增删改查功能,此章仅作抛砖引玉用!!!
前端界面如下

aspx.cs页面代码也只简单实现对模版的保存

        /// <summary>/// Saves the data./// </summary>/// <param name="id">The id.</param>private void SaveData(int id){Model.C_Template model = GetData(id);if (model != null){long x = 0;if (id <= 0){x = model.id = _BLL.Add(model);}else{x = _BLL.Update(model) ? 1 : 0;}//other code//show messageif (x > 0){MessageBox.Show(string.Format(_jsonResult, "true", "保存成功", _returnUrl, id.ToString()), MessageEnum.Error);}else{MessageBox.Show(string.Format(_jsonResult, "false", "保存失败,请稍候再试...", "", id.ToString()), MessageEnum.Error);}}else{//有错误MessageBox.Show(string.Format(_jsonResult, "false", _pageMsg, "", id.ToString()), MessageEnum.Error);}}

二,根据对应模版,静态出一个include页面

ok,好吧,其实我这里取巧了,先跳过,后面总结里再详说。
为了使本例简单,现在先假设模版页已经生成了html格式。代码如下

<!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><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>{$title} - {$classcName} - <!--#include file="/include/common/siteTitle.html" --></title><meta name="description" content="{$seoDescription},<!--#include file="/include/common/siteDescription.html" -->" /><meta name="keywords" content="{$seoKeyWords},<!--#include file="/include/common/siteKeyWords.html" -->" /><link href="/css/layout.css" rel="stylesheet" type="text/css" /><link href="/css/layout_sub.css" rel="stylesheet" type="text/css" /><script src="/js/jquery/jquery.js" type="text/javascript"></script><script src="/js/jquery/myJS.js" type="text/javascript"></script><!--[if lte IE 6]><script type="text/javascript" src="/js/ie6png.js"></script><![endif]--><script type="text/javascript">$(function () {$(".hotSchool .tabs").tabs(".hotSchool div.contentC", { event: 'click', effect: 'fade' });});</script>
</head>
<body><div id="bgImgWrap"><img src="/images/back1.jpg" alt="" /></div><!--#include file="/include/common/picStory.html" --><div class="bigWrap"><div class="sideWrapBg png"></div><div class="sideWrap png"><div class="logo noTxt clearfix"></div><!--#include file="/include/common/sideNav.html" --></div><div class="mainWrap png"><!-- top search /--><!--#include file="/include/common/head.html" --><!-- 频道页顶部导航 /--><div class="cWrap subTop clearfix"><div class="left subTitle">{$channelname}</div><div class="left subNav"><!--{$subNav}--></div></div><!-- sub wrap --><div class="cWrap subWrap pie png clearfix"><!-- 文章详细 /--><div class="detailWrap newsListWrap newsDetailWrap clearfix"><div class="subNavWrap clearfix"><div class="subNav left">{$locationget}</div></div><h1>{$title}</h1><div class="infoWrap clearfix"><div class="shareWrap"> <div id="bdshare" class="bdshare_t bds_tools get-codes-bdshare"><span class="left">分享本页:</span><a class="bds_qzone"></a><a class="bds_tsina"></a><a class="bds_tqq"></a><a class="bds_renren"></a><a class="bds_douban"></a><span class="bds_more"></span></div></div><div class="dateWrap">发表:{$addDate} </div><div class="readWrap">阅读:<span id="viewNums">...</span></div></div><div class="clearfix"></div><div class="subHR clearfix png"></div><!-- Intro /--><div class="introWrap clearfix">{$intro}</div><!-- 正文 /--><div class="txtWrap clearfix minArticle">{$content}</div><!-- 相关文章 /--><div></div></div></div><!--/ sub wrap --><!-- footer /--><!--#include file="/include/common/foot.html" --></div></div>
</body>
</html>

ok,现在我们把这个页面命名为“CS1.html”,放在根目录下的“Template”文件夹下,那么,我们建一个“include.aspx”页面,作用户输入文章用,那么

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="include.aspx.cs" validateRequest="false" Inherits="Admin_CMS_include" %>
<!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" Height="26px" Width="350px"></asp:TextBox><br />    文章摘要:<asp:TextBox ID="txtIntro" runat="server" Height="26px" Width="350px"></asp:TextBox><br />    文章内容:<asp:TextBox ID="txtContent" runat="server" Height="179px" TextMode="MultiLine" Width="350px"></asp:TextBox><br />  <br />  <asp:Button ID="btnInclude" runat="server" OnClick="btnInclude_Click" Text="生成静态页" />  </div>  </form>
</body>
</html>

aspx.cs页面代码如下,记得引用

using System.IO;
using System.Text;

那么,主要代码如下:

  protected void btnInclude_Click(object sender, EventArgs e){//other code;//Get date into dataSource;    string mbPath = Server.MapPath("~/Web/Template/CS1.html");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("MMddHHmm") + ".html";//保存静态页面的扩展名//整章的关键点,替换掉相应字符串 str = str.Replace("{$Title}", txtTitle.Text);str = str.Replace("{$intro}", txtIntro.Text);str = str.Replace("{$content}", txtContent.Text);  //生成静态文件    try{sw = new StreamWriter(Server.MapPath("~/html/") + fileName, false, code);sw.Write(str);sw.Flush();}catch (Exception ex){throw ex;}finally{sw.Close();Response.Write("<a href=/Web/html/" + fileName + " mce_href=" + fileName + " target=_blank>" + fileName + "</a>已经生成!");}}  

三,总结

ok,原理已经明白了。那么,从效益出发,实际应用中应该是怎样的呢?

一:每先建一个静态页面模版,就相应生成一个静态模版页;

二:或者直接从数据库中读取模版的数据流,然后相应替换;

三:确定保存文章的时候,立刻生成一个相应的静态文章页;

四:在网站后台管理中,嵌入“一键生成静态页面”中,重新检索生成漏掉或者有更改的静态页面。

那么,其它比如是否细分类别来实现对应的静态化功能,就以自己实际项目来考虑了

最后,附最后的效果图。。。。

asp.net怎样一键生成静态页面,实例说明相关推荐

  1. Asp.NET生成静态页面并分页

    因为公司的产品用asp开发, 前一段时间用asp写了一个生成静态页面并分页的程序,但缘于对.net的热爱,写了这个.net下的生成静态页面并分页的程序. 主要的原理就是替换模板里的特殊字符. 1.静态 ...

  2. 一键静态化【一键生成静态网页】

    项目首页 HTML页  需要全屏轮播展示,要求通过管理平台能够选择展示的图片.开始时使用 Ajax 获取数据库表中图片地址展示,结果只能轮播一次无法循环轮播,最后通过一键静态化实现此功能  一,案例展 ...

  3. .NET生成静态页面并分页

    转自:http://blog.csdn.net/zdyguilong/archive/2007/05/24/1624491.aspx 因为公司的产品用asp开发, 前一段时间用asp写了一个生成静态页 ...

  4. php简单的静态页面现成,PHP生成静态页面的简单方法

    页面静态化的方法,分为两种,一种是伪静态,就是url 重写,一种是你真的静态化.下面介绍PHP中页面静态化的方法. 什么是PHP静态化 PHP静态化的简单理解就是使网站生成页面以静态HTML的形式展现 ...

  5. ASP.NET生成静态页面的方法

    使用ASP.NET生成静态页面的方法有两种,第一种是使用C#在后台硬编码,第二种是读取模板文件,使用字符串替换的方法.第一种方法编码量大,而且维护比较困难.我重点讲解第二种方法.第二种方法的基本思路是 ...

  6. ASP.NET生成静态页面的简单实现

    1.使用场景 当页面的数据不需要经常更改时可采用静态页面方式. 2.使用静态页面的好处 (1)提高网站的访问速度 (2)减轻服务器负担 (3)利于搜索引擎抓取 3.ASP.NET生成静态页面 生成静态 ...

  7. ASP.NET生成静态页面方法大全(1)

    方案1: /// <summary> /// 传入URL返回网页的html代码 /// </summary> /// <param name="Url" ...

  8. ASP新闻分页,将一篇过长的文章分页,生成静态页面

    老话题,新问题:新闻分页,将一篇过长的文章分页,生成静态页面. 问题来源于制作大型新闻文章管理系统,往往碰到文章超长的情况. 现在将他们生成静态页面没有什么问题,但是如何将它们按照某种规则,生成编号为 ...

  9. java 生成静态页面——Freemarker实例教程

    转载地址:http://blog.csdn.net/wangliqiang1014/article/details/20048629 版权声明:本文为博主原创文章,未经博主允许不得转载. 一.Free ...

最新文章

  1. android xutils3.0获取服务器图片,Android端使用xUtils3.0实现文件上传
  2. 如何用asp.net实现校验功能!
  3. Chrome 正在测试标签页的预览功能
  4. 批量打印html文档,web页面的单页打印以及批量打印实现方法
  5. Winform中实现ZedGraph曲线图的图像复制到剪切板、打印预览、获取图片并保存、另存为的功能
  6. Red Hat Enterprise Linux(RHEL)中yum的repo文件详解
  7. c语言两个长整数相加,二个超长正整数的相加
  8. html5与css3都要学吗,前端要学css3吗?
  9. java爬虫隐藏表单提交_java爬虫--jsoup简单的表单抓取案例
  10. pytorch clamp 与clamp_区别
  11. 谁说大龄程序员不能学 Java?
  12. linux超级终端minicom的使用方法
  13. Java多态形式_Java多态
  14. 《机器学习实战》中英文电子书 + 源代码下载
  15. Python机器学习实战1
  16. 康佳如何做“加法”?
  17. c#之字符串,列表,接口,队列,栈,多态
  18. [学习日志]UI如何与数据绑定?
  19. 最全最详细的蓝牙版本介绍包含蓝牙4.0和4.1
  20. linux 文件755权限的意思,Linux文件和目录的777、755、644权限解释

热门文章

  1. 数据结构——图的存储及转换
  2. 数据库 试述关系模型的完整性规则。在参照完整性中,什么情况下外码属性的值可以为空值?
  3. 王者荣耀转系统服务器繁忙,手游王者荣耀转系统会失去什么详细讲解
  4. 你们想要的端游游戏源码素材他来咯 他来咯
  5. Qt Creator 9发布
  6. 九州云入选2021中国信创500强
  7. ar路由器的虚拟服务器,ar111s路由器如何设置虚拟服务器
  8. NLTK学习笔记(五):分类和标注词汇
  9. 无线黑名单实现(将终端踢下线同时禁止终端再次连接)
  10. 人工智能教育在中国遍地开花