2011-07-04 47 views
2

我最近添加了URL路由到我的非MVC网站这是基于ASP.NET和C#。所以,现在,如果我得到以下传入的请求:如何从使用URL路由的ASP.NET网站上的URL中删除参数?

http://www.coolsite.com/item/27 

...我可以重新映射这个场景背后:

http://www.coolsite.com/widgets.aspx?id=27 

今天,我增加了一个附加参数的URL的末尾跟踪在Facebook上“喜欢”这个链接的用户。我想要建立一个推荐或花型图,这样我就可以跟踪哪些用户分享或喜欢某些东西,以及他们的哪些朋友跟随共享链接。那么,对于用户“乔”谁拥有333的ID,网址是这样的,如果他“喜欢”的页面:

http://www.coolsite.com/item/27/333 

页面正在建设只有当值“333”是对我很重要在服务器上,所以我可以更新我的FacebookLikeReferral数据库表,但我并不想(或需要)在页面加载后在地址栏中显示“333”参数。

什么是最好的实践方式修改URL(通过路由或其他一些机制)删除从URL末尾的“333”“/ 333”

+0

你是如何解决这个问题的? – Webruster

回答

0

返回没有该参数的重定向结果。

+0

如果我对每个请求都做这件事,这可能不是很昂贵吗?另外,与Response.Redirect相比,Server.Transfer会是更好的选择吗? –

+0

Server.Transfer不会更改浏览器中的URL。如果您确实需要更改浏览器中的URL,则Response.Redirect是唯一明智的选择。如果你这样做,每一个请求都会很昂贵。 – Arjen

+0

这就是我的想法。我希望在那里有一个特定于.NET的方式来做到这一点,作为URL路由框架的一部分。我正在寻找的清理工作纯粹是化妆品,所以我不打算花费很高的费用来制作一个漂亮的网址。 –