博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ASP.NET伪静态实现
阅读量:5929 次
发布时间:2019-06-19

本文共 1263 字,大约阅读时间需要 4 分钟。

在asp.net下,如何自己写代码来实现伪静态呢?如何重写url地址呢?

 

例如:本来aspx的页面地址是:/default.aspx?id=1,我要重写成这样:/index-1.html。那如何实现?

 

思路如下:利用HttpModule来实现。

 

1.新建文件,URLHttpModel.cs,并实现IHttpModule接口。代码如下:

 

[csharp] 
 
 
  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Linq;  
  4. using System.Text.RegularExpressions;  
  5. using System.Web;  
  6.   
  7. namespace Web.HttpModel.Demo  
  8. {  
  9.     public class URLHttpModel : IHttpModule  
  10.     {  
  11.         public void Init(HttpApplication context)  
  12.         {  
  13.             context.BeginRequest += Context_BeginRequest;  
  14.         }  
  15.   
  16.         private void Context_BeginRequest(object sender, EventArgs e)  
  17.         {  
  18.             HttpApplication app = (HttpApplication) sender;  
  19.             HttpContext context = app.Context;  
  20.             string requestPage = context.Request.Path.ToLower();  
  21.             var newPattern = "/index-(\\d+).html";  
  22.             if (Regex.IsMatch(requestPage, $"^{newPattern}$", RegexOptions.None | RegexOptions.IgnoreCase))  
  23.             {  
  24.                 string queryString = Regex.Replace(requestPage, newPattern, "id=$1", RegexOptions.None | RegexOptions.IgnoreCase);  
  25.                 context.RewritePath("/Default.aspx", string.Empty, queryString);  
  26.             }  
  27.         }  
  28.   
  29.         public void Dispose()  
  30.         {  
  31.               
  32.         }  
  33.     }  
  34. }  

 

2.然后在web.config文件中,配置此Modeule,代码如下:

 

[csharp] 
 
 
  1. <httpModules>  
  2.       <add name="URLModel" type="Web.HttpModel.Demo.URLHttpModel,Web.HttpModel.Demo"/>  
  3. </httpModules>  
3,然后运行项目,输入如下地址,/index-1.html,可以看到如下的效果:

 

 
 

转载于:https://www.cnblogs.com/jjg0519/p/6337156.html

你可能感兴趣的文章
unity游戏与我
查看>>
187. Repeated DNA Sequences
查看>>
iis6 zencart1.39 伪静态规则
查看>>
SQL Server代理(3/12):代理警报和操作员
查看>>
基于事件驱动的DDD领域驱动设计框架分享(附源代码)
查看>>
Linux备份ifcfg-eth0文件导致的网络故障问题
查看>>
2018年尾总结——稳中成长
查看>>
行列式的乘法定理
查看>>
JFreeChart开发_用JFreeChart增强JSP报表的用户体验
查看>>
度量时间差
查看>>
MySQL 5.6为什么关闭元数据统计信息自动更新&统计信息收集源代码探索
查看>>
apache prefork模式优化错误
查看>>
jmeter高级用法例子,如何扩展自定义函数
查看>>
通过jsp请求Servlet来操作HBASE
查看>>
JS页面刷新保持数据不丢失
查看>>
清橙A1202&Bzoj2201:彩色圆环
查看>>
使用data pump工具的准备
查看>>
springMVC---级联属性
查看>>
get和post区别
查看>>
crontab执行shell脚本日志中出现乱码
查看>>