2

我想要做的是重写 URL 以使它们对 SEO 更友好,但我仍然想将参数作为 int ID 传递。

例如,指向新闻文章的 URL 可能如下所示:“www.domain.com/category-id/article-id”或“domain.com/5/3”

我想要做的是在任何地方重写 URL,以便将类别的标题和文章的标题写入 URL,使其变为 fx“domain.com/politics/some-title”,但我仍然想通过文章的 ID 作为控制器操作的参数。这对于类别不太重要,但这是我想对文章 ID 做的事情,因为它是唯一的,但标题可能不是。

我检查了属性路由并查看了一些路由指南和问题,但没有找到任何可以让我实现此功能的东西。我刚刚开始使用 ASP.NET MVC,所以我无法研究任何太高级的东西。

提前致谢。

4

2 回答 2

0

快速而肮脏的解决方案:

1) domain.com/categoryName/articleID/articleName/ 2) domain.com/date/categoryName/articleName(日期应该有助于使 articleName 独一无二) 3) domain.com/categoryName/articleName?id=xxx

没什么特别的,但这些方法会奏效。

于 2012-09-29T04:21:49.097 回答
0

我建议使文章标题独一无二,并且您必须从控制器操作中获取基于标题的文章。

我看到您正在尝试根据类别对文章进行分组。当我最初创建我的博客时,我也有同样的想法,但很快意识到这不是一种灵活的方法,原因有几个。

  1. 假设您写了一篇带有名称的文章some-title并将其放在一个类别下politics,因此 URL 将是domain.com/politics/some-title,但稍后您想将文章移至另一个类别,例如“国际政治”,因此您的 url 现在必须更改到domain.com/international-politics/some-title并且您破坏了旧网址,并且为该链接添加书签的人现在将收到404。更好的方法是根据发布日期组织网址,这不会改变类似的东西http://domain.com/archive/yyyy/mm/dd/unique_title

  2. 有时您想用多个类别标记一篇文章,此时与基于类别的方法相比,基于标签的方法将成为更好的选择。

于 2012-09-29T13:18:44.437 回答