【发布时间】:2011-12-19 04:59:26
【问题描述】:
我有一个新闻网站。我通常使用参数来显示新闻或浏览器类别的新闻。例如:
http://mysite.com/News/Details/5
新闻是控制器 - 详情是行动 - 5 是新闻的 ID
现在我想将这条新闻的名称添加到 Url 中。例如:
http://mysite.com/News/Details/5/name-of-news/ 要么 http://mysite.com/News/name-of-news/
对于分页,我也使用参数 http://mysite.com/News?page=2
现在我想将我的网址显示为以下网址 http://mysite.com/News/Page1
我该怎么做这些事情?提前致谢。
【问题讨论】:
-
分页通常(我也推荐)使用查询参数作为
?page=1完成,因为它几乎不显示 REST 请求中已知集合的过滤结果,随着时间的推移可能会有所不同。集合本身总是相同的,因此它在 REST 规范中有效。 -
由于标题更改,也不需要仅按名称访问新闻。 ID 始终是静态的,但标题可以更改,这会使 Google 结果无效。使用 ID+title 时,使用
META规范信息来区分同一页面内容的这些多方面也是明智的。 -
感谢 Emmanuel N,我使用“/Product/Details/id”来展示我的产品。我也想在 Url 中添加产品名称,但是当我再添加一个 MapRoute 时,它总是运行消息的 MapRoute。我该如何解决这个问题? @Robert Koritnik:感谢您的 cmets。你有任何链接谈论这个吗?我想知道更多。谢谢。
-
订单路由映射很重要,您应该将更具体的路由放在顶部。交换两个映射,看看你得到了什么。
-
@CamDiep:如果您想了解更多关于
rel="canonical"的信息,那么这个Google resource 是您最好的开始。顺便说一句:不是meta,而是link。很抱歉提供错误信息。
标签: asp.net-mvc-3 model-view-controller