UrlRewriter 是微软封装好了的一个URL重写组件。使用它可以让我节约很多自已开发的时间。

好了,开始讲述我的应用经验,这只是很菜鸟的经验,高手就不用看了。

第一步,请从此下载此组件。解压,把UrlRewriter.dll copy到你的项目 bin 目录下。

第二步,在Web.config中加入:

<?xml version="1.0" encoding="gb2312" ?>
<configuration>
     <configSections>
          <section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter" />
     </configSections>

第二步,加入重写的规则节点:
如:  
   <RewriterConfig>
          <Rules>
              <RewriterRule>
                   <LookFor>~/Sell/(.[0-9]*)\.html</LookFor>
                   <SendTo>~/Search/Search_Sell.aspx?id=$1</SendTo>
              </RewriterRule>
              <RewriterRule>
                   <LookFor>~/Sell/Search_Sell\.aspx</LookFor>
                   <SendTo>~/Search/Search_Sell.aspx</SendTo>
              </RewriterRule>
              <RewriterRule>
       <LookFor>~/Buy/(.[0-9]*)\.html</LookFor>
                   <SendTo>~/Search/Search_Buy.aspx?id=$1</SendTo>
              </RewriterRule>
              <RewriterRule>
       <LookFor>~/Buys/(.[0-9]*)\.html</LookFor>
                   <SendTo>~/Buys/Show.aspx?id=$1</SendTo>
              </RewriterRule>
          </Rules>
     </RewriterConfig>

这个就要根据你的需要了,如果你对正则表达式不熟,那么没办法,要么凭借你的高智商去找其中规律,稍稍改一下就能为你所用了。呵呵。如果实在搞不清,那就自己GOOGLE一下正则表达式吧。(本人开始是参考别人的配置猜的,竟然用对了,呵呵。后来还是看了一下相关资料,发现这东东很有用。)

第三步,加入模块配置(写在<system.web>里面):
如: 
 <httpHandlers>
     <add verb="*" path="*.aspx" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
  </httpHandlers>
(这里表示使用HTTP程序来处理重写)

好了,到了现在我们可以试一下看。

于是输入:http://127.0.0.1:8080/Sell/1.aspx 出现了,呵呵。但是如果所它改为:http://127.0.0.1:8080/Sell/1.html
晕,发现不行。汗。。。
呵呵,原因是没把HTML的解析用 asp.net  的ISAPI来解析。
办法是。。。

第四步,在IIS\你的站点\属性\主目录\配置\映谢 加入一个和 aspx 页面的配置相同的扩展名项。注意“确认文件是否存在”不要勾选,否则会出现找不到文件。

现在再来试试看。什么?#¥%#¥%#,还是不行。呵呵。不要急,咱们回过头再来看看,原来在 web.config 中我们没有配置 .html 也使用模块此解析。

第五步,在模块配置中加入:
  <httpHandlers>
     <add verb="*" path="*.aspx" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
     <add verb="*" path="*.html" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
  </httpHandlers>

现在总可以了吧,呵呵。终于看到了,兴奋吧。不要急,这还只是最简单的。如果你的页面有回传。比如说放了DATAGRID,有分页的,你点到下一页就发现,晕倒,又出问题了。
这下怎么办呢,这个其实微软件的网站上就有说到,我在这里简述一下了。

第六步,加入窗体回传保持的组件:
在原来你下载的项目里找到 ActionlessForm.dll 放到你的项目 bin 目录下。

然后在你的这个页面中加入:
<%@ Register TagPrefix="skm" Namespace="ActionlessForm" Assembly="ActionlessForm" %>
再把你的<Form...>改为:
<skm:Form id="你的表单名" method="post" runat="server">
.....
</skm:Form>

That's All.现在你可以高枕无忧了。一切如你所愿。

最后,恭祝各位一切顺利。

转载于:https://www.cnblogs.com/suchenge/articles/1080374.html

UrlReWriter 使用经验小结相关推荐

  1. nest笔记十:typeorm使用经验小结

    nest笔记十:typeorm使用经验小结 nestjs系列笔记 之前的笔记:nest记笔五:使用TypeORM连接mysql,可以使用typeorm的基本功能.随着开发的深入,很多已经满足不了要求了 ...

  2. Struts2 interceptor使用经验小结

    1. interceptor 调用Spring容器中的bean 在interceptor中常有需要调用Spring Bean的需要,其实很简单和Struts2的Action一样配置即可. Spring ...

  3. Kafka使用经验小结

    本文尽量从一个使用者的角度去记录一些在实战当中使用Kfaka所需要关注的要点,这样可能会贴切更多的读者,本文并不会介绍太多的Kafka的一些架构层次设计的知识,因为网上已经有一大堆的重复搬运的资料任由 ...

  4. Superpro5000的使用经验小结

    1.IC的插入方向 这种编程器的IC插入方向是: 1脚在图片的左上角,而且整个芯片的插入位置要靠近图片下方的小扳手: IC如果差错了,编程器上位机会报错: 另外上位机软件要选择对应的IC名称进行程序烧 ...

  5. Lucene使用经验小结

    最近对公司一个使用Lucene的搜索服务进行了维护,踩了一些坑,总结了一点经验,在此做个记录 1.分享一个十分有用的视频教程 由于Lucene没有中文官方文档,英文API文档对新手来说看得十分痛苦,加 ...

  6. matlab乘号前加点,matlab使用经验小结

    1.shift+enter是一次输入几条语句时换行用的:空格+...+enter是一句话分行时的接续! 2.通过what命令可显示出搜索路径上的文件名,如:what(显示当前目录中的文件):what  ...

  7. MyBatis点滴积累

    MyBatis在使用中不知不觉积累了很多经验 1.#和$ MyBatis/Ibatis中#和$的区别 1. #将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号.如:order by #us ...

  8. Mybatis 总结

    1.如何传递多个参数 mybatis中,如果接口有多个参数,那么在mapper.xml中,可以通过#{0,jdbcType=VARCHAR},#{1,jdbcType=VARCHAR}或#{param ...

  9. TeeChart用法(网络收集)默认分类 2010-03-05 21:46:05 阅读788 评论0 字号:大中小 .

    TeeChart用法(网络收集) 默认分类 2010-03-05 21:46:05 阅读788 评论0 字号:大中小 1.TChart Hello world 放一个控件到窗体上,然后写代码加入一个折 ...

最新文章

  1. 小型电商web架构!小而美!
  2. ssm项目jsp加载不出来图片_16. SSM 搭建
  3. linux系统 克隆 恢复 Clonezilla 再生龙 使用
  4. python alpha_如何用Python打造一个简易版的Alpha GO?
  5. git如何合并指定文件内容_git小技巧--如何从其他分支merge个别文件或文件夹
  6. python自动化测试-D6-学习笔记之一(常用模块补充datetime模块)
  7. linux ls不显示total,Linux中使用ls指令时total的意思
  8. 清理delphi项目文件 .bat
  9. electron 读取文件夹内容_electron + jQuery +node.js 快速上手之实现写入文件、拖拽打开文件并读取内容的功能...
  10. 硬盘检测工具哪个好?5款硬盘工具对比测试
  11. 一片文章带你理解再生核希尔伯特空间(RKHS)以及各种空间
  12. 范德蒙行列式计算以应用
  13. Pyrene-PEG-NHS Ester,NHS-PEG-Pyrene
  14. 【docker】win10系统下docker容器安装及使用(二):docker通过commit及dockerfile进行创建
  15. 化学与计算机技术,计算机技术与化学教学整合浅议
  16. WRP Ultimate 3D Endless Runner Kit - 狂徒末路跑酷角色替换教程
  17. 单片机输入和输出模式简要说明
  18. php表格怎么自动排序,Excel表格怎么自动排名
  19. 用Python做了鉴黄模型,内含多20万张“不可描述”图片
  20. Transferable Joint Attribute-Identity Deep Learning for Unsupervised Person Re-Identification

热门文章

  1. 模板标签及模板的继承与引用
  2. Linux 操作命令 more
  3. 【机器学习笔记四】分类算法 - 逻辑回归
  4. 3.过滤数据 ---SQL
  5. Appium+Robotframework实现Android应用的自动化测试-2:Windows中启动Appium和模拟器
  6. 积跬步-java任职要求
  7. C 语言和C++语言的 struct对比
  8. EPSON 自带CCD图像处理包使用举例
  9. Canny边缘检测算法原理及其VC实现详解(二)
  10. python重点知识 钻石_python——子类对象如何访问父类的同名方法