2012-05-16 39 views
1

我正在使用URL重寫,並有一些問題。我想我的網址是這樣的:Web表單和URL重寫:隱藏ID,顯示名稱?

www.domain.com/product/myproduct 

但我也希望能夠檢索產品的ID,而無需訪問數據庫。我想過有像網址:

www.domain.com/product/myproduct/1 

www.domain.com/product/1-myproduct 

但如果我能躲ID會更好。

那麼,我該如何做到最簡單的方法呢?

目前我的Global.asax有以下途徑:

routes.MapPageRoute("Produkt visning", 
         "legetoej/{Categoryname}/{SubCategoryname}/{ProductName}", 
         "~/SingleProduct.aspx"); 

當我取回名字我不喜歡這樣的SIngleProduct.aspx:

object productRoute = Page.RouteData.Values["ProductName"]; 

     if (productRoute != null && !string.IsNullOrEmpty(productRoute.ToString())) 
     { 
// do stuff 
} 

如果我很簡單的可以直接去找該ID而不是名稱,這將是非常棒的。

非常感謝真棒,stackoveflowers ;-)

+0

無法弄清楚你在問什麼......它幾乎聽起來像你想從你的URL路徑中排除產品ID,但它會自動出現在路由數據中。 – McGarnagle

+0

我真的不明白問題是什麼。如果您要在路線中包含ID佔位符,您是否可以以同樣的方式檢索它? –

+0

http://weblogs.asp.net/scottgu/archive/2007/02/26/tip-trick-url-rewriting-with-asp-net.aspx –

回答

1

要隱藏產品的ID ......採取ID和應用加密它...像DES或三重DES,然後應用Server.URLEncode方法到ID,然後你可以很容易地隱藏ID。

當你打開頁面時,你可以簡單地獲取加密的ID並執行Server.URLDecode並解密該ID。

反正......爲什麼不把產品的ID作爲get參數傳遞?例如... www.domain.com/product/myproduct?PID=#$$#12,其中PID已加密並且URL編碼,然後您可以輕鬆處理它。