我正在使用URL重写,并且遇到了一些问题。我希望我的网址是这样的:
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 :(得分:1)
隐藏产品的ID ...获取ID并对其应用加密...类似DES或Triple DES,然后将Server.URLEncode方法应用于ID,然后您可以轻松隐藏ID。 / p>
当您打开页面时,您可以简单地获取加密的ID并执行Server.URLDecode并解密ID。
无论如何......为什么你不把产品的ID作为get参数传递?就像是... www.domain.com/product/myproduct?PID=#$$#12,其中PID已加密并且URL编码,然后您可以轻松处理它。