您的位置:首页 > 编程语言 > ASP

Asp.Net基于动态页面的静态页面实现

2007-08-22 12:54 766 查看
出处: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 ;


                 }




             }                        


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