在asp.net中如何实现伪静态页 [转]
我在这里就不过多讨论静态页、伪静态页、动态页的长短利弊了。只是单纯的讲解如何在asp.net中如何实现伪静态页,以帮助有这方面有需求的朋友,快速解决boss派下来的任务。(拿奖金的时候,记得有我一份功劳哦~~)
以下项目结构的一个截图,特别简单的文件结构,如下

接下来介绍操作过程:
1. 加入两个dll的引用,分别是:ActionlessForm.dll和URLRewriter.dll,其中URLRewriter.dll用于将地址重写;ActionlessForm.dll用于在做列表页时,分页也能做成伪静态的效果。如果没有这两个地址,可以从网上下载到,或通过这个账号联系我,或者QQ:635564389交流。
2. 修改web.config文件,在configuration节下加入代码如下:
<configSections>
<section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter" />
</configSections>
<RewriterConfig>
<Rules>
<RewriterRule>
<LookFor>~/list(.[0-9]*)\.html</LookFor>
<SendTo>~/List.aspx?k=$1</SendTo>
</RewriterRule>
</Rules>
</RewriterConfig>
在system.web节加入如下代码:
<httpHandlers>
<add verb="*" path="*.aspx" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
<add verb="*" path="*.html" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
</httpHandlers>
说明:在rules节中,需要指定伪静态的解析规则,使用RewriterRule子节写出具体的规则,如果有多个规则,可以写多个RewriterRule子节点(这是xml中相当基本的知识,如果不会你要去补一补了哦~~)。在这个例子中,只写了跳转到列表页的伪静态规则。其中lookfor子节表示出现在url中的地址,也就是你做的超链接的地址。(什么?“.[0-9]*”不知道啥意思?你快去翻一翻正则表达式吧)。Sendto子节表示服务器iis接收到地址请求后,会将上述地址转换到哪个aspx文件去。
3. 在IIS中为.html添加配置解析,与.aspx的解析一样
4. 好了,开始写我们比较熟悉的HTML代码吧
在default.aspx文件中写下如下代码:<a href="list0.html">查看图书列表</a>
在点击链接后,会自动使用list.aspx?k=0这个页面显示内容,但是地址栏却是一个html文件。神奇吧?
到此为止,例子就做完了。
提高:可以学习一下加密的知识,将正则部分的内容进行深一步的定义,实现自定义的加密与解密,让你的请求更加安全。还有就是服务器处理文件不要使用太普通的文件名称,尽量复杂一些,也利于安全管理。
http://blog.csdn.net/qitian67/article/details/7310238?reload
在asp.net中如何实现伪静态页 [转]的更多相关文章
- ASP.NET中常用的优化性能的方法
1. 数据库访问性能优化 数据库的连接和关闭 访问数据库资源需要创建连接.打开连接和关闭连接几个操作.这些过程需要多次与数据库交换信息以通过身份验证,比较耗费服务器资源.ASP.NET中提供了连接池( ...
- ASP.NET中后台数据和前台控件的绑定
关于ASP.NET中后台数据库和前台的数据控件的绑定问题 最近一直在学习个知识点,自己创建了SQL Server数据库表,想在ASP.NET中连接数据库,并把数据库中的数据显示在前台,注意,这里的数据 ...
- (转)客户端触发Asp.net中服务端控件事件
第一章. Asp.net中服务端控件事件是如何触发的 Asp.net 中在客户端触发服务端事件分为两种情况: 一. WebControls中的Button 和HtmlControls中的Type为su ...
- 在 ASP.NET 中创建数据访问和业务逻辑层(转)
.NET Framework 4 当在 ASP.NET 中处理数据时,可从使用通用软件模式中受益.其中一种模式是将数据访问代码与控制数据访问或提供其他业务规则的业务逻辑代码分开.在此模式中,这两个层均 ...
- asp.net中使用基于角色role的Forms验证
http://www.cnblogs.com/yao/archive/2006/06/24/434783.html asp.net中使用基于角色role的Forms验证,大致经过几下四步:1.配置系统 ...
- asp.net中的ListBox控件添加双击事件
问题:在Aspx页里的ListBox A中添加双击事件,将选中项添加到另一个ListBox B中,双击ListBox B中的选中项,删除当前选中项 页面: <asp:ListBox ID=&qu ...
- asp.net中的窗口弹出实现,包括分支窗口 . ASP.NET返回上一页面实现方法总结 .
返回上一页的这个东东在我们做项目的时候一般是用于填写完表单后确认的时候,有对原来输入的数据进行修改或者更新时用的,或者是因为网站为了方便浏览者而有心添加的一个东东,一般这种功能的实现在ASP.NET中 ...
- 以下是关于ASP.NET中保存各种信息的对象的比较,理解这些对象的原理,对制作完善的程序来说是相当有必要的(摘至互联网,并非原创--xukunping)
在ASP.NET中,有很多种保存信息的对象.例如:APPlication,Session,Cookie,ViewState和Cache等,那么它们有什么区别呢?每一种对象应用的环境是什么? 为了 ...
- c#ASP.NET中页面传值共有这么几种方式
一.目前在ASP.NET中页面传值共有这么几种方式: 1.Response.Redirect("http://www.hao123.com",false); 目标页面和原页面可以在 ...
随机推荐
- Activity Window View的关系
http://blog.csdn.net/chiuan/article/details/7062215 http://blog.163.com/fenglang_2006/blog/static/13 ...
- WAS
http://pic.dhe.ibm.com/infocenter/wasinfo/v8r0/index.jsp?topic=%2Fcom.ibm.websphere.express.doc%2Fin ...
- Delphi HTML5 Canvas组件
最近去sourceforge瞎转悠,突然发了一个组件,关于Delphi下Html5的canvas的组件,大概浏览了一下源码,竟然是纯粹的Pascal代码,也就说完全的Delphi代码.不敢独享,现在上 ...
- linux 命令总结(转载)
linux 命令总结(转载) 1. 永久更改ip ifconfig eth0 新ip 然后编辑/etc/sysconfig/network-scripts/ifcfg-eth0,修改ip 2.从Lin ...
- Unix/Linux环境C编程入门教程(24) MySQL 5.7.4 for Red Hat Enterprise 7(RHEL7)的安装
远观历史, MySQL的主要目的是为了能够在单处理器核心的商业服务器上运行.如今MySQL的一个变化用户可能不会注意到,那就是甲骨文已经开始重新架构MySQL的代码,使它大量的模块化.如软件解析器,优 ...
- vmware配置安装JDK、Tomcat以及项目部署
1.安装JDK1.7 JDK:http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html 安 ...
- 续前篇---数据挖掘之聚类算法k-mediod(PAM)原理及实现
上一篇博文中介绍了聚类算法中的kmeans算法.无可非议kmeans由于其算法简单加之分类效率较高 已经广泛应用于聚类应用中. 然而kmeans并非十全十美的.其对于数据中的噪声和孤立点的聚类带来的误 ...
- 什么是dandy 风格_百度知道
什么是dandy 风格_百度知道 什么是dandy 风格 2010-06-21 10:56 平ping123 | 分类:服装/首饰 | 浏览11257次 题谢谢 有没有比 ...
- Flash Recovery Area空间不足导致DB不能打开或hang住处理方法
当归档目录设置在闪回恢复区,并且闪回恢复区又满了的情况下, DB 就会无法归档而hang住或者无法打开. 这种情况下打开数据库会遇到如下错误信息: SQL> select status from ...
- ASP.NET MVC 学习之路-6
本文在于巩固基础 上文中使用的Code First创建数据库 本文将使用数据库生成模型 这里使用ADO.NET实体数据模型来生成模型 下面按照指导完成操作 下面看看如何使用这个框架 数据访问修改主要是 ...