再谈<<在ASP.NET中重写URL>>

本文介绍ASP.NET中的URL重写技术,通过代码示例展示了如何将带有参数的页面请求转换为更加友好的静态页面形式。同时,还介绍了ASP.NET 2.0中如何在Web.config文件内配置URL映射。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

将之前的<<在ASP.NET中重写URL>>中的代码重构一下:
Global.asax.cs文体中:

protected void Application_BeginRequest(object sender, EventArgs e)
{
string pattern = @"(ArticleContent)-(\d+).html";
MyRewritePath(pattern, "$1.aspx?id=$2");
//将ArticleContent.aspx?id=n改写为ArticleContent-n.html的形式(n为参数)
string pattern1 = @"(ArticleList)-(\d+).html";
MyRewritePath(pattern1, "$1.aspx?caid=$2");
//将ArticleList.aspx?caid=n改写为ArticleList-n.html的形式
string pattern2 = @"(SsStorieDetailed)-(\d+).html";
MyRewritePath(pattern2, "$1.aspx?id=$2");
//将SsStorieDetailed.aspx?id=n改写为SsStorieDetailed-n.html的形式
}
protected void MyRewritePath(string pattern,string regex)
{
string oldUrl = HttpContext.Current.Request.RawUrl;
Match m = Regex.Match(oldUrl, pattern, RegexOptions.IgnoreCase | RegexOptions.Compiled);
if (m.Success)
{
string newUrl = Regex.Replace(oldUrl, pattern, regex, RegexOptions.Compiled | RegexOptions.IgnoreCase);
this.Context.RewritePath(newUrl);
}
}


补充:ASP.NET 2.0的URL映射的实现方法
在Web.config->configuration->system.web部分实现:

<urlMappings enabled="true">
<add url="~/Index.html" mappedUrl="~/Default.aspx" />
<add url="~/InformationDissemination.html" mappedUrl="~/InformationDissemination.aspx" />
</urlMappings>

将首页Default.aspx映射为Index.html,将InformationDissemination.aspx映射为InformationDissemination.html
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值