您的位置:首页 > 其它

基于动态页面的静态页面实现

2007-04-16 16:09 393 查看
只需要在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 ;


}




}


}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: