【发布时间】:2018-05-01 16:34:27
【问题描述】:
我在决定将类别/路径放在 URL 路由上时遇到问题。假设我的示例 Web 应用程序中有一些附加到某些类别的产品。例如:
Book1 Attached to -> Category1 | Category2
Book2 Attached to -> Category1 | Category2 | Category3
Book3 Attached to -> Category2 | Category3
并且为产品定义的路由图是:
url: "{controller}/{action}/{languageCode}/{category}/{product}"
defaults: new { controller = "Home", action = "ViewItem" }
所以 Book1 的可能路由是:
[Domain Name]/Home/ViewItem/en-US/Category1/Book1
[Domain Name]/Home/ViewItem/en-US/Category2/Book1
Book2 的可能路由是:
[Domain Name]/Home/ViewItem/en-US/Category1/Book2
[Domain Name]/Home/ViewItem/en-US/Category2/Book2
[Domain Name]/Home/ViewItem/en-US/Category3/Book2
我想保存并了解当前类别,但每个产品都有一个唯一的 URL(用于搜索引擎跟踪和共享 URL 的目的)。我考虑使用 Session Variable 或 ViewBag 甚至 Cookie,但它们各有其局限性和缺点。例如使用 cookie 可能会带来一些麻烦:如果设置的过期时间太小,当用户在某些页面上暂停时可能会丢失当前路径,如果设置太长,即使用户请求,也可能导致用户回到旧的浏览路径由于现有 cookie,在新打开的浏览器中打开主页(除此之外,我对 cookie 有一些经验,我相信这并非一直都能正常工作),关于 Session 和 ViewBag 我不知道使用它们是否是最好的主意,那么任何人都可以分享经过测试的解决方案或好主意吗?我会很感激的。
【问题讨论】:
-
我对没有任何 cmets、描述或理由的投票感到惊讶。我将我的 50 宝贵点设置为赏金,因为您的回答对我来说非常重要。如果您理解我的问题并了解解决方案,请回答,否则请离开。如果您认为这是一个愚蠢的问题并决定投反对票,请至少写一条评论并说出您的理由。谢谢大家。
标签: asp.net-mvc url cookies routing