Asp.Net基于动态页面的静态页面实现
2012-05-18 17:29
441 查看
出处:http://hi.baidu.com/%BA%EC%C3%F1/blog/item/68025ee7807f972cb83820fb.html
只需要在Global.asax加上几行代码就行了,我们是通过捕获用户的请求,然后通过RewritePath来实现的:
这是我程序中的一段代码,它就负责把上面的那些请求转化为真正的页面请求,
我们是通过正则表达式来区分各种类别的请求的:
protected void Application_BeginRequest(Object sender, EventArgs e)
{
string url= Request.Url.AbsoluteUri
;
string strMatch=
@"http://www/.2shoushichang/.com/([^/]+)/" ;
string newUrl=
"" ;
string strCmd= SplitInfo(url,strMatch)
;
if (strCmd!=
null)
{
switch(strCmd.ToLower())
{
case"product":
strMatch=
@"/product/(/d+)/.aspx" ;
string strProductId=
SplitInfo(url,strMatch) ;
if (strProductId!=
null)
{
newUrl=
string.Format("..//Product.aspx?id={0}",strProductId)
;
this.Context.RewritePath(newUrl) ;
}
break ;
case"midtype"://s-100100-All-2.aspx
strMatch=
@"/midtype/(/S+-/d+-/S+-/d+)/.aspx" ;
string strResult=
SplitInfo(url,strMatch) ;
if (strResult!=
null)
{
string[] strParam=
strResult.Split('-') ;//MidtypeList.aspx?id=100100&city=威海&type=s&Page=3
if (strParam.Length!=
4)
break ;
string city=
AppGlobal.GetCityNameByCode(strParam[2]) ;
newUrl=
string.Format("..//MidtypeList.aspx?type={0}&id={1}&city={2}&page={3}",strParam[0],strParam[1],city,strParam[3])
;
this.Context.RewritePath(newUrl) ;
}
break ;
case"其它处理":
break;
default:
break ;
}
}
}
只需要在Global.asax加上几行代码就行了,我们是通过捕获用户的请求,然后通过RewritePath来实现的:
这是我程序中的一段代码,它就负责把上面的那些请求转化为真正的页面请求,
我们是通过正则表达式来区分各种类别的请求的:
protected void Application_BeginRequest(Object sender, EventArgs e)
{
string url= Request.Url.AbsoluteUri
;
string strMatch=
@"http://www/.2shoushichang/.com/([^/]+)/" ;
string newUrl=
"" ;
string strCmd= SplitInfo(url,strMatch)
;
if (strCmd!=
null)
{
switch(strCmd.ToLower())
{
case"product":
strMatch=
@"/product/(/d+)/.aspx" ;
string strProductId=
SplitInfo(url,strMatch) ;
if (strProductId!=
null)
{
newUrl=
string.Format("..//Product.aspx?id={0}",strProductId)
;
this.Context.RewritePath(newUrl) ;
}
break ;
case"midtype"://s-100100-All-2.aspx
strMatch=
@"/midtype/(/S+-/d+-/S+-/d+)/.aspx" ;
string strResult=
SplitInfo(url,strMatch) ;
if (strResult!=
null)
{
string[] strParam=
strResult.Split('-') ;//MidtypeList.aspx?id=100100&city=威海&type=s&Page=3
if (strParam.Length!=
4)
break ;
string city=
AppGlobal.GetCityNameByCode(strParam[2]) ;
newUrl=
string.Format("..//MidtypeList.aspx?type={0}&id={1}&city={2}&page={3}",strParam[0],strParam[1],city,strParam[3])
;
this.Context.RewritePath(newUrl) ;
}
break ;
case"其它处理":
break;
default:
break ;
}
}
}
相关文章推荐
- Asp.Net基于动态页面的静态页面实现
- 基于动态页面的静态页面实现
- ASP.NET 伪静态页面的实现
- 利用Mircosoft URLRewriter.dll实现asp.net页面伪静态
- ASP.NET动态转静态页面的方法
- ASP.NET通过使页面动态加载不同CSS实现多界面
- ASP.NET 动态转静态页面的两种方法总结
- Asp.net中配置Web.config 的UrlRewrite实现伪静态页面的代码
- ASP.NET动态转静态页面的另一方法
- 基于动态页面的静态页面实现
- asp.net + CSS实现动态菜单突出显示当前页面!
- ASP.NET实现新闻页面的分页功能[生成静态版]
- ASP.NET实现新闻页面的分页功能[生成静态版]
- ASP.NET 伪静态页面的实现
- Asp.net项目基于jQuery.i18n.properties 实现前端页面的资源国际化
- 【转】G 优化(SEO)基于动态页面的静态页面实现
- Asp.net动态转静态页面的两种方法总结
- asp.net中实现页面上动态显示系统时间
- 利用Mircosoft URLRewriter.dll实现asp.net页面伪静态
- ASP.NET 动态转静态页面的两种方法总结 - 动态页面转换成HTML静态页面方法