ASP.NET伪静态实现
在asp.net下,如何自己写代码来实现伪静态呢?如何重写url地址呢?
例如:本来aspx的页面地址是:/default.aspx?id=1,我要重写成这样:/index-1.html。那如何实现?
思路如下:利用HttpModule来实现。
1.新建文件,URLHttpModel.cs,并实现IHttpModule接口。代码如下:
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text.RegularExpressions;
- using System.Web;
- namespace Web.HttpModel.Demo
- {
- public class URLHttpModel : IHttpModule
- {
- public void Init(HttpApplication context)
- {
- context.BeginRequest += Context_BeginRequest;
- }
- private void Context_BeginRequest(object sender, EventArgs e)
- {
- HttpApplication app = (HttpApplication) sender;
- HttpContext context = app.Context;
- string requestPage = context.Request.Path.ToLower();
- var newPattern = "/index-(\\d+).html";
- if (Regex.IsMatch(requestPage, $"^{newPattern}$", RegexOptions.None | RegexOptions.IgnoreCase))
- {
- string queryString = Regex.Replace(requestPage, newPattern, "id=$1", RegexOptions.None | RegexOptions.IgnoreCase);
- context.RewritePath("/Default.aspx", string.Empty, queryString);
- }
- }
- public void Dispose()
- {
- }
- }
- }
2.然后在web.config文件中,配置此Modeule,代码如下:
- <httpModules>
- <add name="URLModel" type="Web.HttpModel.Demo.URLHttpModel,Web.HttpModel.Demo"/>
- </httpModules>
3,然后运行项目,输入如下地址,/index-1.html,可以看到如下的效果:
转自:http://Www.CnBlogs.Com/WebEnh/
如果想下次快速找到我,记得点下面的关注哦!
本博客Android APP 下载 |
![]() |
支持我们就给我们点打赏 |
![]() |
支付宝打赏 支付宝扫一扫二维码 |
![]() |
微信打赏 微信扫一扫二维码 |
![]() |
如果想下次快速找到我,记得点下面的关注哦!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!