首页新闻找找看学习计划

如何将.aspx转换成静态的HTML

0
悬赏园豆:10 [已解决问题] 解决于 2011-04-12 13:50

  希望大家提供有注释的代码 ,谢谢

ouhb的主页 ouhb | 初学一级 | 园豆:65
提问于:2011-04-12 10:47
< >
分享
最佳答案
0

静态页技术大致有两种方式:

一)

伪静态,或者更专业点 叫做 url rewrite. asp.net中你可以选择一些开源组件进行重写url.

文章以及代码资源:

1)http://msdn.microsoft.com/zh-cn/library/ms972974.aspx

http://blog.csdn.net/showmy/archive/2007/11/01/1861400.aspx

下载地址1:http://www.rickel.cn/uploads/DevTools/MSDNURLRewriting.msi
下载地址2:download.microsoft.com/download/0/4/6/0463611e-a3f9-490d-a08c-877a83b797cf/MSDNURLRewriting.msi
2)

http://urlrewriter.net/

当然还有其他的,更当然你可以自己写,主要运用asp.net管道机制,httpmodule.具体知识,你可以搜索啦.

二)

基于服务器访问压力,在服务器端生成纯静态html页面.,或者基于模板技术,生成静态页面.也就是静态页面里面有类似标签的东西,你自己写正则表达式进行替换.这个主要是原理,当然你可以参考使用一些开源模板引擎.

开源资源:

1)

stringtemplate

http://www.antlr.org/wiki/display/ST/Five+minute+Introduction

http://www.stringtemplate.org/download.html

2)

http://nvelocity.sourceforge.net/

你也可以看看一些开源的项目进行学习,比如discuz等.

下面提供的简单实现原理.

//源码是替换掉模板中的特征字符

string mbPath = Server.MapPath("template.htm");
Encoding code = Encoding.GetEncoding("gb2312");
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") + ".html";
str = str.Replace("$title$", txtTitle.Text);//替换Title
str = str.Replace("$content$", txtContent.Text);//替换content
//生成静态文件
try
{
sw = new StreamWriter(Server.MapPath("html/") + fileName, false, code);
sw.Write(str);
sw.Flush();

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

收获园豆:10
DYStudio.Net | 小虾三级 |园豆:1747 | 2011-04-12 11:03
其他回答(1)
1

楼主要实现动态生成静态页?还是只是对页面做输出处理。

Astar | 园豆:40805 (高人七级) | 2011-04-12 11:20
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册