Asp.Net基於動態頁面的靜態頁面實現

出處: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 ;
                 }


             }
                        
         }
 
發佈了2 篇原創文章 · 獲贊 0 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章